PipHardwareConfigExists
UINT8 __stdcall PipHardwareConfigExists(
VOID *hHardwareConfigRoot,
UINT64 HardwareConfigIndex,
INT64 a3,
INT64 a4,
INT64 a5,
INT64 a6,
INT64 a7,
INT64 a8){
unsigned int v8;
UINT8 v9;
int v10;
NTSTATUS v12;
UINT64 *DesiredAccess;
UINT64 DataSize;
int Data;
_HANDLE Handle[2];
UINT64 pKeyNameLength[66];
*(_QWORD *)Handle = 0i64;
v8 = 0;
Data = 0;
v9 = 0;
HIDWORD(DataSize) = 0;
v10 = HardwareConfigIndex;
do
{
LODWORD(DataSize) = 260;
DesiredAccess = &DataSize;
v12 = PnpCtxRegEnumKey(hHardwareConfigRoot, (UINT64)hHardwareConfigRoot, (WCHAR *)v8++, pKeyNameLength);
if( v12 < 0 )
break;
LODWORD(DesiredAccess) = 1;
if( PnpCtxRegOpenKey(
0i64,
hHardwareConfigRoot,
(WCHAR *)pKeyNameLength,
0i64,
(UINT64)DesiredAccess,
(VOID **)Handle) >= 0 )
{
LODWORD(DataSize) = 4;
if( PnpCtxRegQueryValue(
(HPNPCTX *)hHardwareConfigRoot,
*(VOID **)Handle,
(WCHAR *)L"Id",
(UINT64 *)((char *)&DataSize + 4),
&Data,
&DataSize) >= 0
&& DataSize == 0x400000004i64
&& Data == v10 )
{
v9 = 1;
}
ZwClose(Handle[0]);
*(_QWORD *)Handle = 0i64;
}
}
while( !v9 );
return v9;
}Referenced by:
PipHardwareConfigInit