IOCTL_STORAGE_BREAK_RESERVATION IOCTL (ntddstor.h)

中斷磁碟保留。 在多啟動器 (「叢集」) 系統中,單一計算機可以保留磁碟資源,讓其他計算機無法存取磁碟。 如果計算機沒有或無法及時釋放資源,則需要強制移除磁碟保留的方法。

強制系統釋放保留磁碟資源的其中一種方法是重設總線。 事實上,對於由 SCSI 埠驅動程式管理總線適配卡的存儲設備,IOCTL_STORAGE_BREAK_RESERVATION要求相當於 IOCTL_STORAGE_RESET_BUS,這隻會重設總線,釋放其所有保留的資源。

對於總線適配卡由 STOR 埠驅動程式管理的記憶體裝置,此 I/O 控制程式代碼提供更好的磁碟保留中斷技術。 這項技術稱為「階層重設」。收到IOCTL_STORAGE_BREAK_RESERVATION要求時,STOR 埠驅動程式會先重設邏輯單元本身,嘗試移除邏輯單元上的保留。 如果失敗,STOR 埠驅動程式會嘗試重設邏輯單元父系的目標裝置。 只有在重設目標裝置失敗時,埠驅動程式才會重設總線。

重設總線會清除所有裝置保留和傳送速率設定,然後必須重新交涉。 由於這是耗時的作業,因此IOCTL_STORAGE_BREAK_RESERVATION一律優先於簡單的總線重設。

呼叫端只需要讀取許可權才能發出總線重設。

暫止 SRB 的 SrbStatus 旗標 會設定為 SRB_STATUS_BUS_RESET。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

Irp-AssociatedIrp.SystemBuffer> 上的緩衝區包含可識別要重設總線的STORAGE_BREAK_RESERVATION_REQUEST結構。

輸入緩衝區長度

STORAGE_BREAK_RESERVATION_REQUEST 結構的長度。

輸出緩衝區

無。

輸出緩衝區長度

無。

狀態區塊

[ 資訊] 欄位設定為零。 [ 狀態 ] 欄位會設定為 [STATUS_SUCCESS],或可能設定為 [STATUS_INSUFFICIENT_RESOURCES]、[STATUS_NOT_IMPLEMENTED] 或 [STATUS_INVALID_DEVICE_REQUEST]。

規格需求

需求
標頭 ntddstor.h (包含 Ntddstor.h)

另請參閱

IOCTL_STORAGE_RESET_BUS

STORAGE_BREAK_RESERVATION_REQUEST