IopGetRegistryKeyInformation

NTSTATUS __stdcall IopGetRegistryKeyInformation(PVOID KeyHandle, _KEY_FULL_INFORMATION **Information){
  NTSTATUS result; 
  _KEY_FULL_INFORMATION *Pool_1; 
  int v6; 
  UINT64 Length; 

  LODWORD(Length) = 0;
  result = ZwQueryKey(KeyHandle, KeyFullInformation, 0i64, 0i64, &Length);
  if( result == -1073741789 || result == -2147483643 )
  {
    Pool_1 = (_KEY_FULL_INFORMATION *)IopVerifierExAllocatePool_1(0x200ui64, (unsigned int)Length);
    if( Pool_1 )
    {
      v6 = ZwQueryKey(KeyHandle, KeyFullInformation, Pool_1, (unsigned int)Length, &Length);
      if( v6 < 0 )
      {
        ExFreePoolWithTag(Pool_1, 0);
        return v6;
      }
      else
      {
        *Information = Pool_1;
        return 0;
      }
    }
    else
    {
      return -1073741670;
    }
  }
  return result;
}

Referenced by:

PiDevCfgCopyDeviceKey
pIoQueryBusDescription
pIoQueryDeviceDescription