Поделиться через


IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)

Запрос IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE отправляется драйверами и приложениями silo, чтобы изменить состояние очереди устройства хранения. Запросы ввода-вывода в очереди устройств хранилища хранятся при временной несанкционированности устройства.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Входной буфер в 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)

См. также

IOCTL_EHSTOR_DEVICE_GET_QUEUE_STATE