IOCTL_SERIAL_WAIT_ON_MASK IOCTL (ntddser.h)
A solicitação IOCTL_SERIAL_WAIT_ON_MASK é usada para aguardar a ocorrência de qualquer evento de espera especificado usando uma solicitação de IOCTL_SERIAL_SET_WAIT_MASK .
Uma solicitação de espera na máscara é concluída depois que um dos seguintes eventos ocorre:
- Ocorre um evento de espera especificado pela solicitação set-wait-mask mais recente.
- Uma solicitação de IOCTL_SERIAL_SET_WAIT_MASK é recebida enquanto uma solicitação de espera na máscara está pendente. O driver conclui a solicitação de espera pendente com um status de STATUS_SUCCESS e a máscara de espera de saída é definida como zero.
Um cliente envia uma solicitação IOCTL_SERIAL_WAIT_ON_MASK para aguardar a ocorrência de um evento que foi especificado na máscara de espera fornecida pela solicitação de IOCTL_SERIAL_SET_WAIT_MASK mais recente. Se um ou mais eventos na máscara de espera atual ocorrerem antes do envio da solicitação IOCTL_SERIAL_WAIT_ON_MASK, essa solicitação será imediatamente concluída com um status de STATUS_SUCCESS e um valor de máscara de saída que identifica os eventos. Se nenhum evento na máscara de espera ocorrer antes do envio da solicitação IOCTL_SERIAL_WAIT_ON_MASK , essa solicitação será marcada como pendente e aguardará na fila do controlador serial a próxima ocorrência de um evento na máscara de espera atual.
Depois que a solicitação de IOCTL_SERIAL_WAIT_ON_MASK de um cliente for concluída com um status de STATUS_SUCCESS e um valor de máscara de saída diferente de zero, o cliente poderá enviar uma nova solicitação de IOCTL_SERIAL_WAIT_ON_MASK para aguardar outro evento na máscara de espera atual. Somente um novo evento que ocorre após a conclusão da solicitação IOCTL_SERIAL_WAIT_ON_MASK anterior fará com que a nova solicitação de IOCTL_SERIAL_WAIT_ON_MASK seja concluída com um status de STATUS_SUCCESS e um valor de máscara de saída diferente de zero.
Código principal
Buffer de entrada
Nenhum.
Comprimento do buffer de entrada
Nenhum.
Buffer de saída
O buffer AssociatedIrp.System aponta para um buffer ULONG que contém uma máscara de espera de evento. A máscara de espera de evento indica quais eventos de espera ocorreram. A máscara de espera de evento é definida como zero ou como o OR bit a bit de um ou mais dos bits de sinalizador SERIAL_EV_XXX.
Comprimento do buffer de saída
O membro Parameters.DeviceIoControl.OutputBufferLength é definido como o tamanho, em bytes, de um ULONG.
Bloco de status
O membro Information é definido como o tamanho, em bytes, de um ULONG.
O membro Status é definido como um dos valores de status genéricos para solicitações de controle de dispositivo serial. Um status de STATUS_INVALID_PARAMETER indica que nenhum evento de espera está definido ou uma solicitação de espera na máscara já está pendente.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddser.h (inclua Ntddser.h) |