// ntddscsi.h
typedef struct _MPIO_PASS_THROUGH_PATH_DIRECT {
SCSI_PASS_THROUGH_DIRECT PassThrough;
ULONG Version;
USHORT Length;
UCHAR Flags;
UCHAR PortNumber;
ULONGLONG MpioPathId;
} MPIO_PASS_THROUGH_PATH_DIRECT, *PMPIO_PASS_THROUGH_PATH_DIRECT;
View the official Windows Driver Kit DDI referenceNo description available.
The MPIO_PASS_THROUGH_PATH_DIRECT structure is used together with an IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT request to instruct the port driver to send an embedded SCSI command to the target device.
PassThroughContains a SCSI_PASS_THROUGH_DIRECT structure that is set up in the same way as it is for an IOCTL_SCSI_PASS_THROUGH_DIRECT request.
VersionSet to zero.
LengthThe size of the MPIO_PASS_THROUGH_PATH_DIRECT structure, in bytes.
FlagsCan be a mask of the following values:
PortNumberThe port number if MPIO_IOCTL_FLAG_USE_SCSIADDRESS is set. Otherwise, this member is zero. If MPIO_IOCTL_FLAG_USE_SCSIADDRESS is set, the PathId and TargetId values are taken from the embedded SCSI_PASS_THROUGH_DIRECT structure.
MpioPathIdThe PathId for the real LUN. This value can be obtained by using a WMI request for the PDO_INFORMATION that is associated with the real LUN. This value is set only if MPIO_IOCTL_FLAG_USE_PATHID is set.
The MPIO_PASS_THROUGH_PATH_DIRECT structure is used for a single-buffered device control request. To use double-buffering, callers should use IOCTL_MPIO_PASS_THROUGH_PATH.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT
IOCTL_SCSI_PASS_THROUGH_DIRECT