IOCTL_SERIAL_GET_WAIT_MASK IOCTL (ntddser.h)
A solicitação IOCTL_SERIAL_GET_WAIT_MASK retorna a máscara de espera de evento que está atualmente definida para o controlador serial.
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 a seção Comentários.
Para definir uma máscara de espera de evento, um cliente pode usar uma solicitação IOCTL_SERIAL_SET_WAIT_MASK . Para aguardar a ocorrência de um evento de espera, um cliente usa uma solicitação IOCTL_SERIAL_WAIT_ON_MASK .
Código principal
Buffer de entrada
Nenhum.
Comprimento do buffer de entrada
Nenhum.
Buffer de saída
O membro AssociatedIrp.SystemBuffer aponta para um buffer ULONG alocado pelo cliente que o driver do controlador serial usa para gerar a máscara de espera. A máscara de espera é zero ou o OR bit a bit de um ou mais dos sinalizadores de evento 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
Se a solicitação for bem-sucedida, o membro Informações será definido como o tamanho, em bytes, de um ULONG. Caso contrário, o membro Informações será definido como zero.
O membro Status é definido como um dos valores de status genéricos para solicitações de controle de dispositivo serial.
Comentários
As constantes SERIAL_EV_XXX definem os bits de sinalizador na máscara de espera para uma porta serial.
#define SERIAL_EV_RXCHAR 0x0001 #define SERIAL_EV_RXFLAG 0x0002 #define SERIAL_EV_TXEMPTY 0x0004 #define SERIAL_EV_CTS 0x0008 #define SERIAL_EV_DSR 0x0010 #define SERIAL_EV_RLSD 0x0020 #define SERIAL_EV_BREAK 0x0040 #define SERIAL_EV_ERR 0x0080 #define SERIAL_EV_RING 0x0100 #define SERIAL_EV_PERR 0x0200 #define SERIAL_EV_RX80FULL 0x0400 #define SERIAL_EV_EVENT1 0x0800 #define SERIAL_EV_EVENT2 0x1000
As constantes SERIAL_EV_XXX definem os tipos de eventos que podem ser especificados em uma máscara de espera. Depois que um cliente (aplicativo ou driver periférico) abre uma conexão com uma porta serial, o cliente pode especificar uma máscara de espera que indica os tipos de eventos que o cliente precisa monitorar. Esses eventos são alterações no estado de hardware da porta serial. Quando ocorre um evento na máscara de espera, o cliente é notificado.
As solicitações de controle IOCTL_SERIAL_SET_WAIT_MASK e IOCTL_SERIAL_GET_WAIT_MASK usam máscaras de espera de eventos para especificar um conjunto de eventos nos quais um cliente pode aguardar. Um valor de máscara de espera é zero ou o OR bit a bit de uma ou mais constantes SERIAL_EV_XXX . Um valor de máscara de espera igual a zero indica que o cliente não está aguardando nenhum evento.
O cliente envia uma solicitação de controle IOCTL_SERIAL_WAIT_ON_MASK para aguardar um evento na máscara de espera definida no momento. O driver do controlador serial conclui essa solicitação quando ocorre um evento na máscara de espera.
A tabela a seguir mostra quais bits de sinalizador SERIAL_EV_XXX têm suporte por SerCx2, SerCx e Serial.sys. Uma entrada Sim na tabela indica que a extensão ou driver da estrutura serial dá suporte ao bit de sinalizador correspondente. Uma entrada Sem indica que não há suporte para o bit de sinalizador.
Bit de sinalizador | SerCx2 | SerCx | Serial.sys |
---|---|---|---|
SERIAL_EV_RXCHAR | Yes | Yes | Yes |
SERIAL_EV_RXFLAG | Veja a observação. | No | Yes |
SERIAL_EV_TXEMPTY | Yes | Yes | Yes |
SERIAL_EV_CTS | Yes | Yes | Yes |
SERIAL_EV_DSR | Yes | Yes | Yes |
SERIAL_EV_RLSD | Veja a observação. | Yes | Yes |
SERIAL_EV_BREAK | Yes | Yes | Yes |
SERIAL_EV_ERR | Yes | Yes | Yes |
SERIAL_EV_RING | Veja a observação. | Yes | Yes |
SERIAL_EV_PERR | Veja a observação. | No | No |
SERIAL_EV_RX80FULL | Veja a observação. | No | Yes |
SERIAL_EV_EVENT1 | Veja a observação. | No | No |
SERIAL_EV_EVENT2 | Veja a observação. | No | No |
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddser.h (inclua Ntddser.h) |