// ntddscsi.h
// CTL_CODE(0x0004, 0x413, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_MPIO_PASS_THROUGH_PATH_EX 0x0004D04C
View the official Windows Driver Kit DDI referenceNo description available.
The IOCTL_MPIO_PASS_THROUGH_PATH_EX control code request is the extended version of the IOCTL_MPIO_PASS_THROUGH_PATH request. This request provides support for bidirectional data transfers and allows a command data block (CDB) > 16 bytes.
This I/O control code allows an application or kernel driver to send an SCSI command to a designated real LUN. The following restrictions apply to the use of this I/O control code:
Parameters.DeviceIoControl.InputBufferLength indicates the size, in bytes, of the buffer at Irp->AssociatedIrp.SystemBuffer.
The buffer must be at least sizeof(MPIO_PASS_THROUGH_PATH_EX) or, if sent by a 32-bit application in a 64-bit operating system, sizeof(MPIO_PASS_THROUGH_PATH32_EX).
The port driver returns any request-sense data and any data that is transferred from the device to the buffer at Irp->AssociatedIrp.SystemBuffer.
The SenseInfoLength and DataOutTransferLength members in the embedded SCSI_PASS_THROUGH_EX structure are updated to indicate the amount of data that is transferred.
The Information field is set to the number of bytes returned in the output buffer at Irp->AssociatedIrp.SystemBuffer. The Status field is set to STATUS_SUCCESS, or possibly to STATUS_BUFFER_TOO_SMALL or STATUS_INVALID_PARAMETER if the input Length value in the embedded SCSI_PASS_THROUGH_EX is improperly set.