PnpCtxOpenContextBaseKey

NTSTATUS __fastcall PnpCtxOpenContextBaseKey(INT64 a1, INT64 a2, INT64 a3, UINT64 a4, _HANDLE *a5){
  __int64 v5; 
  unsigned int v6; 
  int CachedContextBaseKey; 
  __int64 v8; 
  int v9; 
  VOID *v11; 

  v5 = *(&stru_140CF2E80 + 607);
  v11 = 0i64;
  v6 = a4;
  CachedContextBaseKey = PnpCtxGetCachedContextBaseKey(*(&stru_140CF2E80 + 607), (PNPCTX_BASE_KEY_TYPE)a2, &v11);
  if( CachedContextBaseKey >= 0 )
  {
    if( v5 )
      v8 = *(_QWORD *)(v5 + 224);
    else
      v8 = 0i64;
    v9 = SysCtxRegOpenKey(v8, v11, (const WCHAR *)&dword_1407CF120, 0, v6, (VOID **)a5);
    if( v9 == -1073741444 )
    {
      return -1073741595;
    }
    else if( v9 < 0 )
    {
      return v9;
    }
  }
  return CachedContextBaseKey;
}

Referenced by:

PiCMOpenClassKey
PiDevCfgEnumDeviceKeys
PiDevCfgResolveVariableKeyHandle