共用方式為


BPIO_OPERATIONS列舉 (ntddstor.h)

BPIO_OPERATIONS 定義 IOCTL_STORAGE_MANAGE_BYPASS_IO 控件程式代碼所支援的各種 BypassIO 作業。

語法

typedef enum _BPIO_OPERATIONS {
  BPIO_OP_ENABLE,
  BPIO_OP_DISABLE,
  BPIO_OP_QUERY
} BPIO_OPERATIONS;

常數

 
BPIO_OP_ENABLE
針對指定的磁碟區或磁碟啟用 BypassIO 的要求,這表示驅動程式可能不會看到該堆疊的所有讀取/寫入。

注意

磁碟區和儲存堆疊中的所有驅動程式都有機會否決 BypassIO 啟用要求,但建議您儘可能啟用它。

在工作前:

* 如果驅動程式可以支援指定裝置的 BypassIO,它應該將要求轉送至堆疊。
* 如果驅動程式不支援指定裝置的 BypassIO,它應該:
* 更新 BPIO_OUTPUT 結構,包括NTSTATUS作業,描述啟用要求被否決的原因、驅動程式的名稱和唯一的描述性字串,以及關於為何否決啟用要求的其他詳細數據。
* 使用 STATUS_SUCCESS完成 IOCTL_STORAGE_MANAGE_BYPASS_IO

在後續作業期間,驅動程式可以看到其下方的所有驅動程式是否都能夠支援 BypassIO。 如果是,驅動程式應該保留檔案的任何必要狀態,並繼續完成處理。 驅動程式有責任維護狀態,以正確處理可能與啟用 BypassIO 狀態不相容的要求。

檔系統會維護目前啟用 BypassIO 數目的每個磁碟區計數。 只有當這個計數從零轉換到一個時,才會傳送 BPIO_OP_ENABLE 作業。

即使磁碟區或記憶體堆疊驅動程序否決 BypassIO,文件系統堆疊仍可繼續執行 BypassIO。 這是因為如果有人否決磁碟區堆疊上的 BypassIO,文件系統仍然可以略過篩選。

BPIO_OP_DISABLE
針對指定的磁碟區/磁碟停用 BypassIO 的要求。 它可讓驅動程式清除任何相關聯的 BypassIO 狀態。

當最後一個已啟用 BypassIO 的檔案停用或關閉時,文件系統會傳送這項作業(其每一卷計數從一個轉換到零)。

如果驅動程式收到 BPIO_OP_DISABLE 但目前未啟用 BypassIO,則應該忽略要求。

此作業不應該失敗。
BPIO_OP_QUERY
查詢是否可針對指定的磁碟區或磁碟啟用 BypassIO。

記憶體驅動程式應該處理類似 BPIO_OP_ENABLE 作業的要求,並在 BPIO_OUTPUT 結構的適當欄位中填入相同的診斷資訊。 主要差異在於驅動程式不會在 QUERY 期間進入 BypassIO ENABLE 狀態。

言論

如需詳細資訊,請參閱 BypassIO for storage drivers

要求

要求 價值
最低支援的用戶端 Windows 11
標頭 ntddstor.h

另請參閱

IOCTL_STORAGE_MANAGE_BYPASS_IO