NT_DISK::Control

void __fastcall NT_DISK::Control(
        NT_DISK *this,
        UINT32 a2,
        void *a3,
        UINT32 a4,
        void *OutputBuffer,
        unsigned int OutputBufferLength){
  PIRP *v10; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  int Object; 
  __int128 v13; 
  int v14; 

  Object = 0;
  v14 = 0;
  v13 = 0i64;
  IoStatusBlock = 0i64;
  KeInitializeEvent((INT64)&Object, 0, 0);
  v10 = IoBuildDeviceIoControlRequest(
          a2,
          *((PDEVICE_OBJECT *)this + 44),
          a3,
          a4,
          OutputBuffer,
          OutputBufferLength,
          0,
          (PKEVENT)&Object,
          &IoStatusBlock);
  if( v10 )
  {
    if( IofCallDriver(*((_QWORD *)this + 44), (UINT64)v10) == 259 )
      KeWaitForSingleObject((UINT64)&Object, 0, 0, 0, 0i64);
  }
}

Referenced by:

No references.