IopGetRegistryValues

INT64 __stdcall IopGetRegistryValues(PVOID KeyHandle, KEY_VALUE_FULL_INFORMATION **ValueList){
  KEY_VALUE_FULL_INFORMATION **v2; 
  INT64 result; 
  v2 = ValueList + 1;
  *ValueList = 0i64;
  ValueList[2] = 0i64;
  ValueList[1] = 0i64;
  LODWORD(result) = IopGetRegistryValue(KeyHandle, (PWCHAR)L"Identifier", 0x28ui64, ValueList);
  if( (int)(result + 0x80000000) < 0 || (_DWORD)result == -1073741772 )
  {
    LODWORD(result) = IopGetRegistryValue(KeyHandle, (PWCHAR)L"Configuration Data", 0x24ui64, v2);
    if( (((_DWORD)result + 0x80000000) & 0x80000000) != 0 || (_DWORD)result == -1073741772 )
    {
      LODWORD(result) = IopGetRegistryValue(KeyHandle, (PWCHAR)L"Component Information", 0x18ui64, v2 + 1);
      if( (((_DWORD)result + 0x80000000) & 0x80000000) != 0 || (_DWORD)result == -1073741772 )
        return 0i64;
    }
  }
  return result;
}

Referenced by:

pIoQueryBusDescription
pIoQueryDeviceDescription