Compartilhar via


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 pode aguardar os eventos de espera representados por bits de sinalizador SERIAL_EV_RXCHAR por meio de SERIAL_EV_EVENT2. Para obter mais informações sobre esses sinalizadores de evento, consulte SERIAL_EV_XXX.

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

IRP_MJ_DEVICE_CONTROL

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)

Confira também

IOCTL_SERIAL_SET_WAIT_MASK

SERIAL_EV_XXX