IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE IOCTL (ehstorioctl.h)
A solicitação IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE é enviada por drivers de silo e aplicativos para alterar o estado de uma fila de dispositivos de armazenamento. As solicitações de E/S na fila do dispositivo de armazenamento são mantidas quando o dispositivo está temporariamente não autorizado.
Código principal
Buffer de entrada
O buffer de entrada em Irp-AssociatedIrp.SystemBuffer> contém uma estrutura ACT_QUEUE_STATE. ACT_QUEUE_STATE é declarado em ehstorioctl.h como o seguinte.
typedef struct tagACT_QUEUE_STATE
{
BOOLEAN fFrozen;
} ACT_QUEUE_STATE;
Comprimento do buffer de entrada
O comprimento de uma estrutura ACT_QUEUE_STATE .
Buffer de saída
Nenhum.
Comprimento do buffer de saída
Nenhum.
Bloco de status
Um dos valores a seguir pode ser retornado no campo Status .
Valor do Status | Descrição |
---|---|
STATUS_SUCCESS | O estado da fila foi alterado com êxito. |
STATUS_INVALID_BUFFER_SIZE | O comprimento do buffer de entrada é muito pequeno. |
STATUS_ACCESS_DENIED | A solicitação IOCTL não foi emitida por um driver de silo. |
Comentários
Drivers de silo ou aplicativos podem congelar a fila de solicitação de E/S do dispositivo de armazenamento se a não autorização temporária for necessária. Normalmente, a não autorização temporária ocorre durante estados de baixa energia ou quando uma política exige o bloqueio de dispositivos de Armazenamento Avançado, como uma sessão de usuário bloqueada. Nesse caso, é preferível colocar solicitações de E/S pendentes em espera em vez de falhar nas solicitações de E/S e causar perda de dados.
Para evitar o abuso da solicitação de IOCTL_EHSTOR_DEVICE_SET_QUEUE_STATE por aplicativos, somente um driver pode emitir esse IOCTL. Se enviada de um aplicativo de modo de usuário, essa solicitação falhará com STATUS_ACCESS_DENIED.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 8 |
Cabeçalho | ehstorioctl.h (inclua EhStorIoctl.h) |