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 eventos, 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 eventoXXX SERIAL_EV_.
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 de Informações do será definido como o tamanho, em bytes, de um ULONG. Caso contrário, o membro de Informações do será definido como zero.
O membro status de é definido como um dos valores de status genérico para solicitações de controle de dispositivo serial.
Observações
As constantesXXX SERIAL_EV_ 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 (driver de aplicativo ou 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 evento para especificar um conjunto de eventos nos quais um cliente pode aguardar. Um valor de máscara de espera é zero ou or bit a bit de uma ou mais SERIAL_EV_constantes de XXX. Um valor de máscara de espera igual a zero indica que o cliente não está aguardando eventos.
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 deXXX SERIAL_EV_ têm suporte por SerCx2, SerCx e Serial.sys. Uma entrada Sim na tabela indica que a extensão da estrutura serial ou driver dá suporte ao bit de sinalizador correspondente. Uma entrada No indica que o bit de sinalizador não suportado.
Bit de sinalizador | SerCx2 | SerCx | Serial.sys |
---|---|---|---|
SERIAL_EV_RXCHAR | Sim | Sim | Sim |
SERIAL_EV_RXFLAG | Veja a observação. | Não | Sim |
SERIAL_EV_TXEMPTY | Sim | Sim | Sim |
SERIAL_EV_CTS | Sim | Sim | Sim |
SERIAL_EV_DSR | Sim | Sim | Sim |
SERIAL_EV_RLSD | Veja a observação. | Sim | Sim |
SERIAL_EV_BREAK | Sim | Sim | Sim |
SERIAL_EV_ERR | Sim | Sim | Sim |
SERIAL_EV_RING | Veja a observação. | Sim | Sim |
SERIAL_EV_PERR | Veja a observação. | Não | Não |
SERIAL_EV_RX80FULL | Veja a observação. | Não | Sim |
SERIAL_EV_EVENT1 | Veja a observação. | Não | Não |
SERIAL_EV_EVENT2 | Veja a observação. | Não | Não |
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ntddser.h (inclua Ntddser.h) |