IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)
IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE要求是由尋址接收器驅動程式和應用程式傳送,以變更記憶體裝置佇列的狀態。 當裝置暫時未經授權時,會保留記憶體裝置佇列中的IO要求。
主要程序代碼
輸入緩衝區
Irp-AssociatedIrp.SystemBuffer> 的輸入緩衝區包含ACT_QUEUE_STATE結構。 ACT_QUEUE_STATE 在 ehstorioctl.h 中宣告如下。
typedef struct tagACT_QUEUE_STATE
{
BOOLEAN fFrozen;
} ACT_QUEUE_STATE;
輸入緩衝區長度
ACT_QUEUE_STATE 結構的長度。
輸出緩衝區
無。
輸出緩衝區長度
無。
狀態區塊
下列其中一個值可以在 [ 狀態 ] 字段中傳回。
狀態值 | Description |
---|---|
STATUS_SUCCESS | 已成功變更佇列狀態。 |
STATUS_INVALID_BUFFER_SIZE | 輸入緩衝區長度太小。 |
STATUS_ACCESS_DENIED | IOCTL 要求不是由尋址接收器驅動程序發出。 |
備註
如果需要暫時未經授權,尋址接收器驅動程式或應用程式可以凍結儲存裝置 IO 要求佇列。 一般而言,暫時未經授權會在低電源狀態期間發生,或當原則需要鎖定增強型存儲設備時發生,例如鎖定的用戶會話。 在這種情況下,最好保留擱置的 IO 要求,而不是讓 IO 要求失敗並造成數據遺失。
若要防止應用程式濫用 IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE 要求,只有驅動程式可以發出此 IOCTL。 如果從使用者模式應用程式傳送,此要求將會失敗並STATUS_ACCESS_DENIED。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 8 開始提供 |
標頭 | ehstorioctl.h (包含 EhStorIoctl.h) |