IopGetRegistryValues
VOID __fastcall IopGetRegistryValues(VOID *KeyHandle, _KEY_VALUE_FULL_INFORMATION **ValueList, UINT64 Length){
_KEY_VALUE_FULL_INFORMATION **v3;
NTSTATUS RegistryValue;
NTSTATUS v6;
v3 = ValueList + 1;
*ValueList = 0i64;
ValueList[2] = 0i64;
ValueList[1] = 0i64;
RegistryValue = IopGetRegistryValue(KeyHandle, (PWCHAR)L"Identifier", 0x28ui64, ValueList);
if( (int)(RegistryValue + 0x80000000) < 0 || RegistryValue == -1073741772 )
{
v6 = IopGetRegistryValue(KeyHandle, (PWCHAR)L"Configuration Data", 0x24ui64, v3);
if( ((v6 + 0x80000000) & 0x80000000) != 0 || v6 == -1073741772 )
IopGetRegistryValue(KeyHandle, (PWCHAR)L"Component Information", 0x18ui64, v3 + 1);
}
}Referenced by:
pIoQueryBusDescription
pIoQueryDeviceDescription