PiDevCfgConfigureDeviceFilters

INT64 __stdcall PiDevCfgConfigureDeviceFilters(PVOID hKeyTarget, PVOID a2){
  NTSTATUS v3; 
  unsigned int v4; 
  __int64 v6; 
  __int64 v7; 
  int v8[2]; 
  const wchar_t *v9; 
  struct _OBJECT_ATTRIBUTES ObjectAttributes; 
  void *KeyHandle; 
  v8[1] = 0;
  *(&ObjectAttributes.Length + 1) = 0;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  KeyHandle = 0i64;
  ObjectAttributes.RootDirectory = a2;
  v9 = L"Filters";
  ObjectAttributes.ObjectName = (_UNICODE_STRING *)v8;
  v8[0] = 1048590;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 576;
  v3 = ZwOpenKey(&KeyHandle, 0x20019u, &ObjectAttributes);
  v4 = v3;
  if( v3 == -1073741772 )
  {
    v4 = 0;
  }
  else if( v3 >= 0 )
  {
    if( PiPnpRtlCtx && (v6 = *(_QWORD *)(PiPnpRtlCtx + 224)) != 0 )
      v7 = *(_QWORD *)(v6 + 8);
    else
      v7 = 0i64;
    v4 = RegRtlCopyTreeInternal((char *)KeyHandle, 0i64, (__int64)hKeyTarget, L"Filters", 0, v7, 0);
  }
  if( KeyHandle )
    ZwClose(KeyHandle);
  return v4;
}

Referenced by:

PiDevCfgConfigureDeviceKeys