PiDevCfgConfigureDeviceFilters

NTSTATUS __stdcall PiDevCfgConfigureDeviceFilters(VOID *hKeyTarget, VOID *a2){
  INT64 v2; 
  NTSTATUS v4; 
  NTSTATUS v5; 
  __int64 v7; 
  VOID *v8; 
  INT64 v9; 
  INT64 v10; 
  INT64 v11; 
  INT64 v12; 
  int v13[2]; 
  const WCHAR *v14; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 
  VOID *KeyHandle; 

  v13[1] = 0;
  *(&ObjectAttributes.Length + 1) = 0;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  KeyHandle = 0i64;
  ObjectAttributes.RootDirectory = a2;
  v14 = L"Filters";
  ObjectAttributes.ObjectName = (_UNICODE_STRING *)v13;
  v13[0] = 1048590;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 576;
  v4 = ZwOpenKey(&KeyHandle, 0x20019ui64, &ObjectAttributes, v2, v9, v10, v11, v12);
  v5 = v4;
  if( v4 == -1073741772 )
  {
    v5 = 0;
  }
  else if( v4 >= 0 )
  {
    if( *(&stru_140CF2E80 + 607) && (v7 = *(_QWORD *)(*(&stru_140CF2E80 + 607) + 224i64)) != 0 )
      v8 = *(VOID **)(v7 + 8);
    else
      v8 = 0i64;
    v5 = RegRtlCopyTreeInternal(KeyHandle, 0i64, hKeyTarget, L"Filters", 0, v8, 0);
  }
  if( KeyHandle )
    ZwClose((_HANDLE)KeyHandle);
  return v5;
}

Referenced by:

PiDevCfgConfigureDeviceKeys