PnpCtxOpenMachine

__int64 __fastcall PnpCtxOpenMachine(__int64 a1, VOID *a2, __int64 a3, VOID *a4, int a5, int a6, _QWORD *a7){
  _QWORD *v7; 
  VOID **PoolWithTag; 
  VOID **v11; 
  __int64 v12; 
  VOID **v13; 
  _QWORD *v14; 
  __int64 v15; 
  int v16; 
  wchar_t *v17; 
  _UNICODE_STRING *v18; 
  _UNICODE_STRING *v19; 
  wchar_t *v20; 
  VOID **v21; 
  VOID **v22; 
  void *v24; 
  _UNICODE_STRING *P; 

  v7 = a7;
  P = 0i64;
  *a7 = 0i64;
  PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x210ui64, 1380994640i64);
  v11 = PoolWithTag;
  if( PoolWithTag )
  {
    memset(PoolWithTag, 0i64, 0x210u);
    v13 = v11 + 1;
    *(_DWORD *)v11 = 167772160;
    v11[2] = v11 + 1;
    v14 = v11 + 3;
    v11[1] = v11 + 1;
    v15 = 4i64;
    do
    {
      v14[1] = v14;
      *v14 = v14;
      v14 += 2;
      --v15;
    }
    while( v15 );
    v16 = PnpCtxCreateNode(v11, (WCHAR *)L"SYSTEM", 1, v12, a2, v24, a4, 0i64, &P);
    if( v16 < 0 )
    {
      v18 = P;
    }
    else
    {
      v17 = (wchar_t *)v11[2];
      if( *(VOID ***)v17 != v13
        || (v18 = P,
            P->Buffer = v17,
            v19 = v18 + 1,
            *(_QWORD *)&v18->Length = v13,
            *(_QWORD *)v17 = v18,
            v11[2] = v18,
            v20 = (wchar_t *)v11[6],
            *(VOID ***)v20 != v11 + 5) )
      {
        __fastfail(3u);
      }
      v18[1].Buffer = v20;
      *(_QWORD *)&v19->Length = v11 + 5;
      *(_QWORD *)v20 = v19;
      v11[6] = v19;
      v11[11] = v18;
      v11[28] = v18[3].Buffer;
      v21 = ExAllocatePoolWithTag(0x200ui64, 0x68ui64, 1380994640i64);
      v22 = v21;
      if( v21 )
      {
        v16 = ExInitializeResourceLite((INT64)v21);
        if( v16 >= 0 )
        {
          v11[30] = v22;
          v22 = 0i64;
        }
        if( v22 )
          ExFreePoolWithTag(v22, 0);
        if( v16 >= 0 )
        {
          v11[29] = 0i64;
          memset(v11 + 31, 0i64, 0x90u);
          v11[38] = PnpDispatchDevice;
          v11[39] = PnpDispatchInstallerClass;
          v11[40] = PnpDispatchDeviceInterface;
          v11[41] = PnpDispatchInterfaceClass;
          v11[42] = PnpDispatchDeviceContainer;
          v11[43] = PnpDispatchDevicePanel;
          memset(v11 + 49, 0i64, 0x60u);
          v11[61] = 0i64;
          v11[62] = 0i64;
          v11[63] = 0i64;
          v11[64] = 0i64;
          v11[65] = 0i64;
          *v7 = v11;
          v11 = 0i64;
          v18 = 0i64;
        }
      }
      else
      {
        v16 = -1073741801;
      }
    }
    if( v18 )
      PnpCtxDestroyNode(v18);
    if( v11 )
      ExFreePoolWithTag(v11, 0);
  }
  else
  {
    return(unsigned int)-1073741801;
  }
  return(unsigned int)v16;
}

Referenced by:

PiDevCfgInitDriverDatabaseCallback
PiPnpRtlInit
PipMigratePnpState