IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)
Запрос IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE отправляется драйверами и приложениями silo, чтобы изменить состояние очереди устройства хранения. Запросы ввода-вывода в очереди устройств хранилища хранятся при временной несанкционированности устройства.
Основной код
Входной буфер
Входной буфер в Irp->AssociatedIrp.SystemBuffer содержит структуру ACT_QUEUE_STATE. ACT_QUEUE_STATE объявлен в ehstorioctl.h следующим образом.
typedef struct tagACT_QUEUE_STATE
{
BOOLEAN fFrozen;
} ACT_QUEUE_STATE;
Длина входного буфера
Длина ACT_QUEUE_STATE структуры.
Выходной буфер
Никакой.
Длина выходного буфера
Никакой.
Блок состояния
Одно из следующих значений можно вернуть в поле Status.
Значение состояния | Описание |
---|---|
STATUS_SUCCESS | Состояние очереди было успешно изменено. |
STATUS_INVALID_BUFFER_SIZE | Длина входного буфера слишком мала. |
STATUS_ACCESS_DENIED | Запрос IOCTL не был выдан драйвером сило. |
Замечания
Драйверы или приложения Silo могут заморозить очередь запросов ввода-вывода устройства хранилища, если требуется временная неавторизация. Как правило, временная неавторизация возникает во время низкой мощности или когда политика требует блокировки устройств расширенного хранилища, таких как заблокированный сеанс пользователя. В таком случае предпочтительнее поместить ожидающие запросы ввода-вывода в удержание, а не завершать запросы ввода-вывода и привести к потере данных.
Чтобы предотвратить злоупотребление запросом IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE приложениями, только драйвер может выдавать этот IOCTL. При отправке из приложения пользовательского режима этот запрос завершится ошибкой STATUS_ACCESS_DENIED.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 8 |
заголовка | ehstorioctl.h (include EhStorIoctl.h) |