MPIO_PASS_THROUGH_PATH_DIRECT structure (ntddscsi.h)

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.

Syntax

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;

Members

PassThrough

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

Version

Set to zero.

Length

The size of the MPIO_PASS_THROUGH_PATH_DIRECT 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_DIRECT 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_DIRECT structure is used for a single-buffered device control request. To use double-buffering, callers should use IOCTL_MPIO_PASS_THROUGH_PATH.

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

SCSI_REQUEST_BLOCK