MPIO_PASS_THROUGH_PATH structure (ntddscsi.h)

The MPIO_PASS_THROUGH_PATH structure is used together with an IOCTL_MPIO_PASS_THROUGH_PATH request to instruct the port driver to send an embedded SCSI command to the target device.

Syntax

typedef struct _MPIO_PASS_THROUGH_PATH {
  SCSI_PASS_THROUGH PassThrough;
  ULONG             Version;
  USHORT            Length;
  UCHAR             Flags;
  UCHAR             PortNumber;
  ULONGLONG         MpioPathId;
} MPIO_PASS_THROUGH_PATH, *PMPIO_PASS_THROUGH_PATH;

Members

PassThrough

Contains a SCSI_PASS_THROUGH structure that is set up in the same way as it is for an IOCTL_SCSI_PASS_THROUGH request.

Version

Set to zero.

Length

The size of the MPIO_PASS_THROUGH_PATH structure, in bytes.

Flags

Can be a mask of the following values:

  • MPIO_IOCTL_FLAG_USE_SCSIADDRESS OR MPIO_IOCTL_FLAG_USE_PATHID
  • MPIO_IOCTL_FLAG_INVOLVE_DSM

PortNumber

The 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 structure.

MpioPathId

The 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.

Remarks

The MPIO_PASS_THROUGH_PATH structure is used for a double-buffered device control request. To bypass buffering in system memory, callers should use IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT. When the system handles an IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT request, it locks down the buffer in user memory, and the device accesses this memory directly.

Requirements

Requirement Value
Header ntddscsi.h (include Ntddscsi.h)

See also

IOCTL_MPIO_PASS_THROUGH_PATH

IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT

IOCTL_SCSI_PASS_THROUGH

IOCTL_SCSI_PASS_THROUGH_DIRECT

SCSI_PASS_THROUGH_DIRECT

SCSI_REQUEST_BLOCK