Compartilhar via


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

Confira também

EvtDriverDeviceAdd

IOCTL_SERIAL_SET_WAIT_MASK

IOCTL_SERIAL_WAIT_ON_MASK

SERIAL_EV_XXX

SerCxGetWaitMask

SerCxInitialize