SPB_TRANSFER_DIRECTION spb.h) (列舉
SPB_TRANSFER_DIRECTION列舉描述 I/O 傳輸順序中單一傳輸 (讀取或寫入) 的方向。
Syntax
typedef enum SPB_TRANSFER_DIRECTION {
SpbTransferDirectionNone,
SpbTransferDirectionFromDevice,
SpbTransferDirectionToDevice,
SpbTransferDirectionMax
} *PSPB_TRANSFER_DIRECTION;
常數
SpbTransferDirectionNone 未定義數據傳輸方向。 |
SpbTransferDirectionFromDevice 數據傳輸方向是從裝置到系統記憶體 (從裝置) 讀取。 |
SpbTransferDirectionToDevice 數據傳輸方向是從系統記憶體到裝置 (寫入裝置) 。 |
SpbTransferDirectionMax 保留供操作系統使用。 |
備註
這個列舉中的值表示 I/O 傳輸順序中個別傳輸的方向。 IOCTL_SPB_EXECUTE_SEQUENCE I/O 控制要求的輸入緩衝區是SPB_TRANSFER_LIST結構,指定序列的傳輸清單。 每個傳輸都是由包含傳輸參數 的SPB_TRANSFER_LIST_ENTRY 結構所描述,其中包含傳輸方向。 傳輸方向是讀取作業的 SpbTransferDirectionFromDevice ,而且是寫入作業的 SpbTransferDirectionToDevice 。
SPB 控制器驅動程式可以呼叫 SpbRequestGetParameters 方法,從 I/O 要求擷取一組 SPB 特定參數。 其中一個參數是 SPB_TRANSFER_DIRECTION 列舉值,指出先前 I/O 要求的傳輸方向。 SPB 控制器驅動程式可以使用這個方向值來判斷目前的讀取或寫入 (IRP_MJ_READ 或 IRP_MJ_WRITE) 要求是否需要變更公交車上的傳輸方向。
此外, SpbRequestGetParameters 會擷取位置值,指出多要求序列之傳輸清單中的讀取或寫入要求相對位置。 如果讀取要求或寫入要求的位置值為 SpbRequestSequencePositionSingle 或 SpbRequestSequencePositionFirst,則上一個傳輸的方向值為 SpbTransferDirectionNone (即沒有先前的傳輸方向) 。 對於具有 SpbRequestSequencePositionMiddle 或 SpbRequestSequencePositionLast 位置值的讀取或寫入要求,方向值會指出先前的傳輸是讀取或寫入。 對於解除鎖定 (IOCTL_SPB_UNLOCK_CONTROLLER) 要求,其位置值為 SpbRequestSequencePositionLast,方向值會指出序列中的最後一個傳輸是讀取或寫入。
鎖定 (IOCTL_SPB_LOCK_CONTROLLER) 要求沒有先前的方向。 同樣地,傳遞至 EvtSpbControllerIoOther 回呼函式的 I/O 控件要求沒有先前的方向。 對於上述任一要求, SpbRequestGetParameters 所擷取的先前方向值是 SpbTransferDirectionNone。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始支援。 |
標頭 | spb.h |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應