Freigeben über


IOCTL_MPIO_PASS_THROUGH_PATH IOCTL (ntddscsi.h)

Dieser E/A-Steuerungscode ermöglicht es einer Anwendung oder einem Kerneltreiber, einen SCSI-Befehl an eine bestimmte echte LUN zu senden. Die folgenden Einschränkungen gelten für die Verwendung dieses E/A-Steuerelementcodes:

  • Wenn ein Klassentreiber für die Pseudo-LUN vorhanden ist, muss die Anwendung die Anforderung an diesen Klassentreiber senden. Daher kann eine Anwendung diese Anforderung nur dann direkt an MPIO senden, wenn kein Klassentreiber für das Gerät vorhanden ist.
  • Alle Pass-Through-Anforderungen müssen synchron sein.
  • Anwendungen erfordern keine Administratorrechte, um eine Pass-Through-Anforderung an ein Gerät zu senden, aber sie müssen Lese-/Schreibzugriff auf das Gerät haben.
  • Die Anforderung umfasst eine SCSI-Pass-Through-Anforderung (in einer eingebetteten SCSI_PASS_THROUGH-Struktur) sowie bestimmte Direktiven.
  • Die SCSI-Pass-Through-Struktur sollte die Anforderungen erfüllen, wie in SCSI_PASS_THROUGHbeschrieben.
  • Wenn der Antrag über den DSM gesendet werden soll, der die tatsächliche LUN geltend machte, muss dies angegeben werden. In einem solchen Fall muss der DSM selbst die gleiche reale LUN angeben. Andernfalls schlägt die Anforderung fehl.
  • Die Anforderung muss die tatsächliche LUN angeben, die aus der Pseudo-LUN in Bezug auf die SCSI-Adresse des Ehemaligen oder seine MPIO PathIdbesteht, aber nicht beide.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Parameters.DeviceIoControl.InputBufferLength gibt die Größe des Puffers bei Irp->AssociatedIrp.SystemBufferan.

Eingabepufferlänge

Der Puffer muss mindestens Größe von(MPIO_PASS_THROUGH_PATH) sein oder, wenn er von einer 32-Bit-Anwendung in einem 64-Bit-Betriebssystem gesendet wird, Größe des(MPIO_PASS_THROUGH_PATH32).

Ausgabepuffer

Der Porttreiber gibt alle Anforderungsoptimierungsdaten und alle Daten zurück, die vom Gerät an den Puffer an Irp->AssociatedIrp.SystemBufferübertragen werden.

Länge des Ausgabepuffers

Die SenseInfoLength und DataTransferLength Member in der eingebetteten SCSI_PASS_THROUGH-Struktur werden aktualisiert, um die Menge der übertragenen Daten anzugeben.

Statusblock

Das Feld Information wird auf die Anzahl der im Ausgabepuffer zurückgegebenen Bytes bei Irp->AssociatedIrp.SystemBufferfestgelegt. Das feld Status wird auf STATUS_SUCCESS oder möglicherweise auf STATUS_BUFFER_TOO_SMALL oder STATUS_INVALID_PARAMETER festgelegt, wenn die Eingabe Length Wert im eingebetteten SCSI_PASS_THROUGH nicht ordnungsgemäß festgelegt ist.

Anforderungen

Anforderung Wert
Header- ntddscsi.h (include Ntddscsi.h)

Siehe auch

MPIO_PASS_THROUGH_PATH

SCSI_PASS_THROUGH