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