PipDmaGuardBlockAddDevice

INT64 __stdcall PipDmaGuardBlockAddDevice(PVOID BugCheckParameter2){
  PVOID *v2; 
  __int64 v3; 
  if( PipDmaGuardPolicy == 1 )
  {
    if( BugCheckParameter2 )
    {
      v2 = (PVOID *)((char *)BugCheckParameter2 + 40);
      IoAddTriageDumpDataBlock(BugCheckParameter2, 0x310ui64);
      if( *(_WORD *)v2 )
      {
        IoAddTriageDumpDataBlock(v2, 2ui64);
        IoAddTriageDumpDataBlock(v2[1], *(unsigned __int16 *)v2);
      }
      if( *((_WORD *)BugCheckParameter2 + 28) )
      {
        IoAddTriageDumpDataBlock((char *)BugCheckParameter2 + 56, 2ui64);
        IoAddTriageDumpDataBlock(*((PVOID *)BugCheckParameter2 + 8), *((unsigned __int16 *)BugCheckParameter2 + 28));
      }
      v3 = *((_QWORD *)BugCheckParameter2 + 2);
      if( v3 )
      {
        if( *(_WORD *)(v3 + 56) )
        {
          IoAddTriageDumpDataBlock((PVOID)(v3 + 56), 2ui64);
          IoAddTriageDumpDataBlock(
            *(PVOID *)(*((_QWORD *)BugCheckParameter2 + 2) + 64i64),
            *(unsigned __int16 *)(*((_QWORD *)BugCheckParameter2 + 2) + 56i64));
        }
      }
    }
    KeBugCheckEx(
      0xCAu,
      0x11ui64,
      (ULONG_PTR)BugCheckParameter2,
      *((_QWORD *)BugCheckParameter2 + 90),
      *((unsigned int *)BugCheckParameter2 + 176));
  }
  PnpRequestDeviceRemoval((__int64)BugCheckParameter2, 0, 55, -1073741790);
  return 3221226190i64;
}

Referenced by:

PipDmgEnforceEnumerationPolicy