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