PnpGetRegistryDword

__int64 __fastcall PnpGetRegistryDword(void *a1, wchar_t *a2, _DWORD *a3){
  NTSTATUS RegistryValue; 
  _KEY_VALUE_FULL_INFORMATION *v5; 
  unsigned int v6; 
  _KEY_VALUE_FULL_INFORMATION *Information; 

  *a3 = 0;
  Information = 0i64;
  RegistryValue = IopGetRegistryValue(a1, a2, 0i64, &Information);
  v5 = Information;
  v6 = RegistryValue;
  if( RegistryValue >= 0 )
  {
    if( PnpValidateRegistryDword((__int64)Information) )
      *a3 = *(ULONG *)((char *)&v5->TitleIndex + v5->DataOffset);
    else
      v6 = -1073741271;
  }
  if( v5 )
    ExFreePoolWithTag(v5, 0);
  return v6;
}

Referenced by:

PiDmaGuardProcessRegistry
PipDmgGetDriverDmarCompatLevel
PnpInitializePnpWatchdogs
PnpQueryWatchdogTimeoutConfiguration