EVT_SERCX_WAITMASK função de retorno de chamada (sercx.h)
A função de retorno de chamada de evento EvtSerCxWaitmask configura o controlador serial para monitorar os eventos em uma máscara de espera, que é um valor de máscara de bits que especifica um conjunto de eventos de hardware.
Sintaxe
EVT_SERCX_WAITMASK EvtSercxWaitmask;
NTSTATUS EvtSercxWaitmask(
[in] WDFDEVICE Device
)
{...}
Parâmetros
[in] Device
Um identificador WDFDEVICE para o objeto de dispositivo de estrutura que representa o controlador serial.
Retornar valor
A função EvtSerCxWaitmask retornará STATUS_SUCCESS se a chamada for bem-sucedida. Caso contrário, ele retornará um erro apropriado status código.
Comentários
O driver do controlador serial implementa essa função de retorno de chamada. A extensão de estrutura serial (SerCx) chama essa função para notificar o driver quando a máscara de espera é alterada. Durante essa chamada, a função EvtSerCxWaitmask chama o método SerCxGetWaitMask para obter a nova máscara de espera. O driver começa imediatamente a monitorar os eventos na nova máscara de espera e descarta qualquer máscara de espera antiga que possa ter sido fornecida em uma chamada EvtSerCxWaitmask anterior. Se a nova máscara de espera for zero, o driver simplesmente descartará a máscara de espera antiga e deixará de monitorar quaisquer eventos de máscara de espera.
Quando o SerCx recebe uma solicitação IOCTL_SERIAL_SET_WAIT_MASK de um cliente, o manipulador de solicitação no SerCx chama a função EvtSerCxWaitmask para definir a nova máscara de espera. Para obter mais informações sobre os tipos de eventos que podem ser especificados por uma máscara de espera, consulte SERIAL_EV_XXX.
A função EvtSerCxWaitmask configura o hardware do controlador serial para monitorar os eventos na nova máscara de espera. Normalmente, a função permite interrupções para esses eventos. Depois de configurar o hardware, a função deve retornar imediatamente, sem esperar que um evento na máscara de espera ocorra.
Posteriormente, quando um evento na máscara de espera faz com que uma interrupção ocorra, o ISR no driver do controlador serial agenda uma função DPC a ser executada. Essa função DPC chama o método SerCxCompleteWait para notificar o SerCx do evento.
Inicialmente, depois que um cliente abre uma conexão com a porta serial e antes da primeira chamada EvtSerCxWaitmask , a máscara de espera é efetivamente zero e o driver do controlador serial não está monitorando nenhum evento SERIAL_EV_XXX .
Para registrar uma função de retorno de chamada EvtSerCxWaitmask , o driver do controlador chama o método SerCxInitialize durante o retorno de chamada EvtDriverDeviceAdd .
Exemplos
O tipo de função para esse retorno de chamada é declarado em Sercx.h, da seguinte maneira.
typedef NTSTATUS
EVT_SERCX_WAITMASK(
__in WDFDEVICE Device
);
Para definir uma função de retorno de chamada EvtSerCxWaitmask chamada MyEvtSerCxWaitmask
, primeiro você deve fornecer uma declaração de função que o SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação exigem, da seguinte maneira.
EVT_SERCX_WAITMASK MyEvtSerCxWaitmask;
Em seguida, implemente a função de retorno de chamada da seguinte maneira.
NTSTATUS
MyEvtSerCxWaitmask(
__in WDFDEVICE Device
)
{ ... }
Para obter mais informações sobre os requisitos de SDV para declarações de função, consulte Declarando funções usando tipos de função de função para drivers KMDF.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 8. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | sercx.h |
IRQL | Chamado em IRQL <= DISPATCH_LEVEL |