SPB_TRANSFER_DIRECTION列舉 (spb.h)
SPB_TRANSFER_DIRECTION 列舉描述 I/O 傳輸序列中單一傳輸的方向(讀取或寫入),。
語法
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 |