SPB_TRANSFER_DIRECTION-Enumeration (spb.h)
Die SPB_TRANSFER_DIRECTION-Enumeration beschreibt die Richtung (Lese- oder Schreibzugriff) einer einzelnen Übertragung in einer E/A-Übertragungssequenz.
Syntax
typedef enum SPB_TRANSFER_DIRECTION {
SpbTransferDirectionNone,
SpbTransferDirectionFromDevice,
SpbTransferDirectionToDevice,
SpbTransferDirectionMax
} *PSPB_TRANSFER_DIRECTION;
Konstanten
SpbTransferDirectionNone Die Datenübertragungsrichtung ist nicht definiert. |
SpbTransferDirectionFromDevice Die Datenübertragungsrichtung erfolgt vom Gerät in den Systemspeicher (vom Gerät gelesen). |
SpbTransferDirectionToDevice Die Datenübertragungsrichtung erfolgt vom Systemspeicher auf das Gerät (Schreiben auf das Gerät). |
SpbTransferDirectionMax Reserviert für die Verwendung durch das Betriebssystem. |
Hinweise
Die Werte in dieser Enumeration geben die Richtungen der einzelnen Übertragungen in einer E/A-Übertragungssequenz an. Der Eingabepuffer für eine IOCTL_SPB_EXECUTE_SEQUENCE E/A-Steuerungsanforderung ist eine SPB_TRANSFER_LIST-Struktur , die eine Liste der Übertragungen für die Sequenz angibt. Jede Übertragung wird durch eine SPB_TRANSFER_LIST_ENTRY-Struktur beschrieben, die die Übertragungsparameter enthält, einschließlich der Übertragungsrichtung. Die Übertragungsrichtung ist SpbTransferDirectionFromDevice für einen Lesevorgang und spbTransferDirectionToDevice für einen Schreibvorgang.
Ihr SPB-Controllertreiber kann die SpbRequestGetParameters-Methode aufrufen, um einen Satz SPB-spezifischer Parameter aus einer E/A-Anforderung abzurufen. Einer dieser Parameter ist ein SPB_TRANSFER_DIRECTION Enumerationswert, der die Übertragungsrichtung der vorherigen E/A-Anforderung angibt. Der SPB-Controllertreiber kann diesen Richtungswert verwenden, um zu bestimmen, ob die aktuelle Lese- oder Schreibanforderung (IRP_MJ_READ oder IRP_MJ_WRITE) eine Änderung der Übertragungsrichtung auf dem Bus erfordert.
Darüber hinaus ruft SpbRequestGetParameters einen Positionswert ab, der die relative Position einer Lese- oder Schreibanforderung in der Liste der Übertragungen für die Sequenz mit mehreren Anforderungen angibt. Wenn eine Leseanforderung oder eine Schreibanforderung den Positionswert SpbRequestSequencePositionSingle oder SpbRequestSequencePositionFirst aufweist, lautet der Richtungswert für die vorherige Übertragung SpbTransferDirectionNone (d. a. es gibt keine vorherige Übertragungsrichtung). Bei einer Lese- oder Schreibanforderung, die über den Positionswert SpbRequestSequencePositionMiddle oder SpbRequestSequencePositionLast verfügt, gibt der Direction-Wert an, ob die vorherige Übertragung ein Lese- oder Schreibvorgang war. Bei einer Entsperrungsanforderung (IOCTL_SPB_UNLOCK_CONTROLLER), die den Positionswert SpbRequestSequencePositionLast aufweist, gibt der Richtungswert an, ob die letzte Übertragung in der Sequenz ein Lese- oder Schreibvorgang war.
Eine Sperranforderung (IOCTL_SPB_LOCK_CONTROLLER) weist keine vorherige Richtung auf. Ebenso weist eine E/A-Steuerelementanforderung, die an die EvtSpbControllerIoOther-Rückruffunktion übergeben wird, keine vorherige Richtung auf. Für eine dieser Anforderungen lautet der vorherige Von SpbRequestGetParameters abgerufene RichtungswertSpbTransferDirectionNone.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt ab Windows 8. |
Kopfzeile | spb.h |