PipDmgSaveDeviceDmarPolicy

__int64 __fastcall PipDmgSaveDeviceDmarPolicy(__int64 a1, INT64 a2, int a3){
  unsigned int v3; 
  INT64 v6; 
  char v7; 
  __int64 v8; 
  __int64 v10; 

  LODWORD(v10) = a3;
  v3 = 0;
  v6 = *(_QWORD *)(a1 + 48);
  v7 = 1;
  if( a3 )
    v3 = PnpSetObjectProperty(
           *(&stru_140CF2E80 + 607),
           v6,
           1u,
           a2,
           0i64,
           (__int64)&DEVPKEY_Device_DmaRemappingPolicy,
           7,
           (__int64)&v10,
           4,
           0);
  else
    PnpSetObjectProperty(
      *(&stru_140CF2E80 + 607),
      v6,
      1u,
      0i64,
      0i64,
      (__int64)&DEVPKEY_Device_DmaRemappingPolicy,
      0,
      0i64,
      0,
      0);
  PnpTraceDmaGuardDevicePolicy(a1, v10);
  v8 = *(_QWORD *)(a1 + 720);
  if( (_DWORD)v10 != 2 || !((unsigned __int8(__fastcall *)(_QWORD, _QWORD))off_140C00A38[0])(*(_QWORD *)v8, 0i64) )
    v7 = 0;
  *(_BYTE *)(v8 + 16) = v7 | *(_BYTE *)(v8 + 16) & 0xFE;
  return v3;
}

Referenced by:

PiDmaGuardProcessPreAddDevice