IOCTL_EHSTOR_BANDMGMT_ERASE_BAND IOCTL (ehstorbandmgmt.h)
IOCTL_EHSTOR_BANDMGMT_ERASE_BAND要求以密碼編譯方式清除並重設訊號範圍的驗證密鑰。 其餘的訊號組態會保持未修改。
主要程序代碼
輸入緩衝區
Irp-AssociatedIrp.SystemBuffer> 的輸入緩衝區必須包含ERASE_BAND_PARAMETERS,而且可能是AUTH_KEY結構。
如果 ERASE_BAND_PARAMETERS的 NewAuthKeyOffset 成員設定為 EHSTOR_BANDMGR_NO_KEY,系統緩衝區中的輸入數據不需要包含AUTH_KEY結構。
輸入緩衝區長度
Parameters.DeviceIoControl.InputBufferLength 表示緩衝區的大小,以位元組為單位,至少必須是 sizeof(ERASE_BAND_PARAMETERS) + sizeof(AUTH_KEY)
。
輸出緩衝區
無。
輸出緩衝區長度
無。
輸入/輸出緩衝區
無。
輸入/輸出緩衝區長度
無。
狀態區塊
下列其中一個值可以在 [ 狀態 ] 字段中傳回。
狀態值 | Description |
---|---|
STATUS_SUCCESS | 已成功清除訊號。 |
STATUS_INVALID_DEVICE_REQUEST | 儲存裝置不支援頻外管理。 |
STATUS_INVALID_BUFFER_SIZE | 輸入緩衝區大小不正確。 |
STATUS_INVALID_PARAMETER | 輸入緩衝區中的資訊無效。 |
STATUS_ACCESS_DENIED | 清除驗證金鑰不是預設金鑰,而且無法清除訊號。 |
STATUS_NOT_FOUND | 找不到所提供選取準則的訊號範圍。 |
STATUS_IO_DEVICE_ERROR | 通訊失敗。 儲存裝置可能與安全性通訊協定不相容。 |
備註
目前清除驗證金鑰未在 IOCTL_EHSTOR_BANDMGMT_ERASE_BAND 要求中提供。 先前已設定儲存裝置的清除驗證金鑰。
Windows 中未提供任何方法來變更儲存裝置的清除驗證密鑰。 如果系統緩衝區中提供正確的參數做為輸入,此要求應該會成功。 如果清除驗證金鑰在 Windows 外部變更,例如在不同的作業系統的雙開機環境中,此要求可能會失敗。
當使用 IOCTL_EHSTOR_BANDMGMT_ERASE_BAND清除帶狀區時,唯一保留的先前屬性是頻帶開始和帶狀區大小。 會移除先前的媒體加密金鑰,併產生新的金鑰。 鎖定設定為讀取和寫入 PERSISTANT_UNLOCK 。 先前設定的安全性元數據已清除。 除非指出使用預設金鑰,否則會設定 ERASE_BAND_PARAMETERS 中指定的新驗證密鑰。
若要防止其他應用程式使用預設密鑰來控制頻外和清除,應該將新的驗證密鑰包含在 IOCTL_EHSTOR_BANDMGMT_ERASE_BAND 要求中。
此要求對頻表所做的變更會在 IOCTL 要求完成之前,以不可部分完成的方式認可至裝置。 因此,保證在系統或電源故障發生時,會以其所有屬性集或完全未設定任何屬性來修改訊號。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
標頭 | ehstorbandmgmt.h (包括 EhStorBandMgmt.h) |