SCSI_PASS_THROUGH Struktur (ntddscsi.h)
Die SCSI_PASS_THROUGH-Struktur wird in Verbindung mit einer IOCTL_SCSI_PASS_THROUGH Anforderung verwendet, den Porttreiber anzuweisen, einen eingebetteten SCSI-Befehl an das Zielgerät zu senden.
Syntax
typedef struct _SCSI_PASS_THROUGH {
USHORT Length;
UCHAR ScsiStatus;
UCHAR PathId;
UCHAR TargetId;
UCHAR Lun;
UCHAR CdbLength;
UCHAR SenseInfoLength;
UCHAR DataIn;
ULONG DataTransferLength;
ULONG TimeOutValue;
ULONG_PTR DataBufferOffset;
ULONG SenseInfoOffset;
UCHAR Cdb[16];
} SCSI_PASS_THROUGH, *PSCSI_PASS_THROUGH;
Angehörige
Length
Enthält den Wert Größe(SCSI_PASS_THROUGH).
ScsiStatus
Meldet den SCSI-Status, der von der HBA oder dem Zielgerät zurückgegeben wurde.
PathId
Gibt den SCSI-Port oder -Bus für die Anforderung an.
TargetId
Gibt den Zielcontroller oder das Gerät auf dem Bus an.
Lun
Gibt die logische Einheitennummer des Geräts an.
CdbLength
Gibt die Größe in Byte des SCSI-Befehlsdeskriptorblocks an.
SenseInfoLength
Gibt die Größe in Byte des Anforderungsoptimierungspuffers an.
DataIn
Dieses Feld muss einen von drei Werten aufweisen:
#######
DataTransferLength
Gibt die Größe in Byte des Datenpuffers an. Viele Geräte übertragen Datenblöcke mit vordefinierter Länge. Der Wert in DataTransferLength- muss ein integrales Vielfaches dieser vordefinierten Mindestlänge sein, die vom Gerät angegeben wird. Wenn ein Unterlauf auftritt, muss der Miniporttreiber dieses Element auf die Anzahl der tatsächlich übertragenen Bytes aktualisieren.
TimeOutValue
Gibt das Intervall in Sekunden an, das die Anforderung ausführen kann, bevor der Porttreiber es als Timeout betrachtet.
DataBufferOffset
Enthält einen Offset vom Anfang dieser Struktur bis zum Datenpuffer. Der Offset muss die Datenausrichtungsanforderungen des Geräts einhalten.
SenseInfoOffset
Versetzt vom Anfang dieser Struktur zum Anforderungsoptimierungspuffer.
Cdb[16]
Gibt den SCSI-Befehlsdeskriptorblock an, der an das Zielgerät gesendet werden soll.
Bemerkungen
Die SCSI_PASS_THROUGH-Struktur wird mit IOCTL_SCSI_PASS_THROUGHverwendet, bei dem es sich um eine Anforderung für gepufferte Gerätesteuerelemente handelt. Um puffern im Systemspeicher zu umgehen, sollten Anrufer IOCTL_SCSI_PASS_THROUGH_DIRECTverwenden. Bei der Behandlung einer IOCTL_SCSI_PASS_THROUGH_DIRECT Anforderung sperrt das System den Puffer im Benutzerspeicher und das Gerät greift direkt auf diesen Speicher zu.
Die Mitglieder der SCSI_PASS_THROUGH entsprechen ungefähr den Mitgliedern einer SCSI_REQUEST_BLOCK Struktur. Die Werte des DataIn Members entsprechen dem SCSI_IOCTL_DATA_IN, SCSI_IOCTL_DATA_OUT und SCSI_IOCTL_DATA_UNSPECIFIED Flags, die SrbFlags Mitglied der SCSI_REQUEST_BLOCK zugewiesen sind.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntddscsi.h (include Ntddscsi.h) |