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.