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