IOCTL_EHSTOR_BANDMGMT_SET_BAND_SECURITY IOCTL (ehstorbandmgmt.h)

頻區管理儲存裝置中的頻子安全性屬性會隨著 IOCTL_EHSTOR_BANDMGMT_SET_BAND_SECURITY 要求進行修改。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

Irp-AssociatedIrp.SystemBuffer> 上的緩衝區必須包含SET_BAND_SECURITY_PARAMETERS結構,後面接著AUTH_KEYBAND_SECURITY_INFO結構。

如果SET_BAND_SECURITY_PARAMETERSAuthKeyOffset 成員設定為 EHSTOR_BANDMGR_NO_KEY,系統緩衝區中的輸入數據不需要包含AUTH_KEY結構。 此外,如果未提供新的驗證金鑰,則不會包含更新的金鑰結構。

輸入緩衝區長度

Parameters.DeviceIoControl.InputBufferLength 表示緩衝區的大小,其大小必須至少為 sizeof (SET_BAND_SECURITY_PARAMETERS) + 2 * sizeof (AUTH_KEY) + sizeof (BAND_SECURITY_INFO) 時,需要所有輸入結構時。

輸出緩衝區

無。

輸出緩衝區長度

無。

狀態區塊

下列其中一個值可以在 [ 狀態 ] 字段中傳回。

狀態值 Description
STATUS_SUCCESS 頻外的安全性屬性已變更。
STATUS_INVALID_DEVICE_REQUEST 儲存裝置不支援頻外管理。
STATUS_INVALID_BUFFER_SIZE 輸入緩衝區大小無效。
STATUS_INVALID_PARAMETER 輸入緩衝區中的資訊無效。
STATUS_NOT_FOUND 找不到所提供選取準則的訊號範圍。
STATUS_ACCESS_DENIED 提供的驗證金鑰無效。
STATUS_IO_DEVICE_ERROR 通訊失敗。 儲存裝置可能與安全性通訊協定不相容。

備註

帶的讀取和寫入鎖定和解除鎖定是在系統緩衝區中作為輸入的 BAND_SECURITY_INFO 結構中設定這個 IOCTL。

驗證金鑰變更不會影響訊號範圍的鎖定狀態。 不需要卸除磁碟區,即可使用此要求變更驗證密鑰。

解除鎖定訊號時,表示BAND_SECURITY_INFOReadlockWriteLock 成員為 FALSE 時,如果SETBANDSEC_AUTHKEY_CACHING_ENABLED是在 SET_BAND_SECURITY_PARAMETERSFlags 成員中設定則接收器驅動程式會快取提供的驗證密鑰。

在特殊情況下,此 IOCTL 可用來通知接收器驅動程序頻外解除鎖定,而不需在 BAND_SECURITY_INFO中使用鎖定成員。 若要這樣做,SET_BAND_SECURITY_PARAMETERSNewAuthKeyOffset 成員會設定為 CurrentAuthKeyOffset並將 BandSecurityInfoOffset 設定為 0。 在此情況下,不會發生安全性變更,但 目前AuthKeyOffset 提供的密鑰會在記憶體中快取,前提是 SETBANDSEC_AUTHKEY_CACHING_ENABLED 是在 Flags 中設定。

此要求對頻表所做的變更會在 IOCTL 要求完成之前,以不可部分完成的方式認可至裝置。 因此,保證在系統或電源故障發生時,會以其所有屬性集或完全未設定任何屬性來修改訊號。

規格需求

需求
最低支援的用戶端 從 Windows 8 開始提供
標頭 ehstorbandmgmt.h (包括 EhStorBandMgmt.h)

另請參閱

BAND_SECURITY_INFO

IOCTL_EHSTOR_BANDMGMT_DELETE_BAND

SET_BAND_SECURITY_PARAMETERS