CmQueryDevicePanelPldProperty
NTSTATUS __fastcall CmQueryDevicePanelPldProperty(
HPNPCTX *hPnpCtx,
WCHAR *ObjectName,
PNP_OBJECT_TYPE ObjectType,
VOID *ObjectBaseKey,
_DEVPROPKEY *PropertyKey,
INT64 a6,
INT64 a7,
INT64 a8,
INT64 a9){
ULONG v9;
PVOID v13;
int ObjectProperty;
unsigned int v16;
VOID **PoolWithTag;
UINT64 NumberOfBytes;
v9 = (unsigned int)hPnpCtx;
*(_QWORD *)a8 = 0i64;
*(_DWORD *)a9 = 0;
v13 = *(PVOID *)a6;
NumberOfBytes = 0i64;
while( 1 )
{
ObjectProperty = PnpGetObjectProperty(
v9,
(INT64)ObjectName,
(unsigned int)ObjectType,
(INT64)ObjectBaseKey,
0i64,
(INT64)PropertyKey,
(INT64)&NumberOfBytes + 4,
(INT64)v13);
if( ObjectProperty != -1073741789 )
break;
v16 = NumberOfBytes;
if( (unsigned int)NumberOfBytes <= *(_DWORD *)a7 )
return -1073741823;
if( *(_QWORD *)a6 )
{
ExFreePoolWithTag(*(PVOID *)a6, 0);
v16 = NumberOfBytes;
}
*(_DWORD *)a7 = v16;
PoolWithTag = ExAllocatePoolWithTag(1ui64, v16, 1380994640i64);
*(_QWORD *)a6 = PoolWithTag;
v13 = PoolWithTag;
if( !PoolWithTag )
{
ObjectProperty = -1073741801;
break;
}
}
if( ObjectProperty < 0 )
return ObjectProperty;
return -1073741823;
}Referenced by:
CmUpdateDevicePanel
CmUpdateDevicePanelInterface