Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Запрос 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) |