PnpGetObjectPropertyKeys
NTSTATUS __fastcall PnpGetObjectPropertyKeys(
INT64 a1,
INT64 a2,
UINT64 a3,
INT64 a4,
INT64 a5,
CHAR a6,
INT64 a7,
INT64 a8,
INT64 a9){
unsigned int v10;
__int64(__fastcall *v13)(INT64, INT64, _QWORD, __int64, int, INT64 *);
int v14;
NTSTATUS ObjectPropertyKeysWorker;
NTSTATUS v16;
int v17;
int v18;
NTSTATUS v19;
INT64 v21;
UINT64 Flags;
INT64 PropertyCount[10];
v10 = a3;
memset(PropertyCount, 0i64, sizeof(PropertyCount));
v13 = *(__int64(__fastcall **)(INT64, INT64, _QWORD, __int64, int, INT64 *))(a1 + 488);
PropertyCount[3] = 0i64;
LODWORD(PropertyCount[8]) = 0;
LOBYTE(PropertyCount[4]) = a6;
PropertyCount[5] = a7;
LODWORD(PropertyCount[6]) = a8;
PropertyCount[7] = a9;
PropertyCount[2] = a4;
if( v13 )
{
v14 = v13(a1, a2, v10, 6i64, 1, PropertyCount);
if( v14 == -1073741822 )
{
v13 = 0i64;
}
else
{
if( v14 == -1073741536 )
return PropertyCount[0];
if( v14 )
return -1073741595;
}
}
LODWORD(Flags) = PropertyCount[8];
LODWORD(v21) = PropertyCount[6];
ObjectPropertyKeysWorker = PnpGetObjectPropertyKeysWorker(
(HPNPCTX *)a1,
(WCHAR *)a2,
v10,
(VOID *)PropertyCount[2],
(WCHAR *)PropertyCount[3],
PropertyCount[4],
(_DEVPROPKEY *)PropertyCount[5],
v21,
(UINT64 *)PropertyCount[7],
Flags);
v16 = ObjectPropertyKeysWorker;
if( !v13 )
return v16;
LODWORD(PropertyCount[0]) = ObjectPropertyKeysWorker;
v17 = v13(a1, a2, v10, 6i64, 2, PropertyCount);
v18 = v17;
if( v17 == -1073741822 )
return v16;
if( v17 == -1073741536 )
return PropertyCount[0];
v19 = v16;
if( v18 )
return -1073741595;
return v19;
}Referenced by:
PiCMGetObjectPropertyKeys
PiDevCfgCopyObjectProperties
PiDqPnPGetObjectPropertyKeys