PoFxRegisterPrimaryDevice
NTSTATUS __fastcall PoFxRegisterPrimaryDevice(_DEVICE_OBJECT *DeviceObject, INT64 a2, POHANDLE__ **a3){
VOID **v3;
int v7;
__int64 v8;
_KNOWN_CONTROLLER_TYPE v9;
INT64 a5;
INT128 a2a[2];
__int64 v13;
__int64 v14;
__int64 v15;
__int64 v16;
__int64 v17;
__int64 v18;
__int64 v19;
__int128 v20;
v3 = 0i64;
if( DeviceObject && a2 && *(_DWORD *)a2 == 1 )
{
v3 = PopFxConvertV1Components(a2 + 80, *(_DWORD *)(a2 + 4));
if( !v3 )
return -1073741670;
v8 = *(_QWORD *)(a2 + 16);
v9 = *(_DWORD *)(a2 + 4);
v19 = 0i64;
*(_QWORD *)a2a = v8;
v13 = *(_QWORD *)(a2 + 24);
v14 = *(_QWORD *)(a2 + 32);
v15 = *(_QWORD *)(a2 + 40);
v16 = *(_QWORD *)(a2 + 48);
v17 = *(_QWORD *)(a2 + 56);
v18 = *(_QWORD *)(a2 + 64);
a5 = *(_QWORD *)(a2 + 72);
v20 = 0i64;
v7 = PopFxRegisterDevice(DeviceObject, a2a, (INT64)v3, v9, a5, 0i64, (INT64)a3);
if( v7 >= 0 && PopErrataDisablePrimaryDeviceFastResume && (*(_DWORD *)(a2 + 8) & 1) != 0 )
_InterlockedOr((volatile signed __int32 *)*a3 + 206, 0x80u);
}
else
{
v7 = -1073741811;
}
if( v3 )
ExFreePoolWithTag(v3, 0x4D584650u);
return v7;
}Referenced by:
No references.