IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION IOCTL (ehstorbandmgmt.h)
頻外管理儲存裝置中訊號的位置屬性會隨著 IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION 要求而修改。
主要程序代碼
輸入緩衝區
Irp-AssociatedIrp.SystemBuffer> 上的緩衝區必須包含SET_BAND_LOCATION_PARAMETERS結構,後面接著AUTH_KEY和BAND_LOCATION_INFO結構。
如果SET_BAND_LOCATION_PARAMETERS的 AuthKeyOffset 成員設定為EHSTOR_BANDMGR_NO_KEY,則系統緩衝區中的輸入數據不需要包含AUTH_KEY結構。
輸入緩衝區長度
Parameters.DeviceIoControl.InputBufferLength 表示緩衝區的大小,其大小必須至少為 sizeof (SET_BAND_LOCATION_PARAMETERS) + sizeof (AUTH_KEY) + sizeof (BAND_LOCATION_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 | 通訊失敗。 存儲設備可能與安全性通訊協定不相容。 |
備註
作業不會修改重設大小之後仍保留在 LBA 中的數據。 此外,如果跨越磁碟區的 LBA 範圍在重設大小之後維持在範圍內,就不需要在重設大小作業期間卸載磁碟區。
此要求對訊號表所做的變更會在 IOCTL 要求完成之前,以不可部分完成的方式認可至裝置。 因此,保證會在系統或電源故障發生時,使用其所有屬性集修改帶,或完全未設定任何屬性。
BAND_LOCATION_INFO的 BandSize 成員必須大於 0。 此 IOCTL 無法將帶狀大小調整為 0,導致刪除帶狀。 若要刪除訊號範圍,則會使用 IOCTL_EHSTOR_BANDMGMT_DELETE_BAND 要求。
如果 BAND_LOCATION_INFO 指定全域訊號範圍的屬性, 則 BandStart 必須設定為 0, 而 BandSize 必須設定為 –1。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供 |
標頭 | ehstorbandmgmt.h (包含 EhStorBandMgmt.h) |