EVT_SERCX_PURGE função de retorno de chamada (sercx.h)
A função de retorno de chamada de evento EvtSerCxPurge é chamada pela extensão de estrutura serial (SerCx) para limpar os buffers de hardware do controlador serial.
Sintaxe
EVT_SERCX_PURGE EvtSercxPurge;
NTSTATUS EvtSercxPurge(
[in] WDFDEVICE Device,
[in] ULONG PurgeMask
)
{...}
Parâmetros
[in] Device
Um identificador WDFDEVICE para o objeto de dispositivo de estrutura que representa o controlador serial.
[in] PurgeMask
Um conjunto de sinalizadores que descrevem os buffers de hardware que devem ser limpos. Atualmente, nenhum sinalizador é definido para operações de limpeza executadas pelo controlador serial. Para obter mais informações, consulte Comentários.
Retornar valor
A função EvtSerCxPurge 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. O SerCx chama essa função quando um cliente (aplicativo ou driver periférico) envia uma solicitação de controle IOCTL_SERIAL_PURGE que exige que os buffers de hardware gerenciados pelo controlador serial sejam limpos.
O SerCx executa as operações de limpeza designadas pelos sinalizadores listados na tabela a seguir.
Bit de sinalizador | Significado |
---|---|
SERIAL_PURGE_RXABORT | Limpe todas as solicitações de leitura. |
SERIAL_PURGE_RXCLEAR | Limpe o buffer de entrada, se houver um. Todos os dados de recebimento neste buffer são descartados. |
SERIAL_PURGE_TXABORT | Limpe todas as solicitações de gravação. |
SERIAL_PURGE_TXCLEAR | Limpe o buffer de saída, se houver um. Todos os dados de transmissão neste buffer são descartados. |
A função EvtSerCxPurge nunca receberá uma solicitação de limpeza que contenha nenhum dos sinalizadores nesta tabela. Os sinalizadores SERIAL_PURGE_XXX são definidos no arquivo de cabeçalho Ntddser.h.
Atualmente, nenhum sinalizador SERIAL_PURGE_XXX é definido para designar operações de limpeza executadas pelo driver do controlador serial e o driver do controlador serial não deve executar nenhuma operação de limpeza em resposta a uma chamada EvtSerCxPurge .
Se a solicitação de controle IOCTL_SERIAL_PURGE exigir que solicitações pendentes de leitura ou gravação sejam canceladas, o SerCx cancelará essas solicitações antes de chamar a função EvtSerCxPurge .
Para registrar uma função de retorno de chamada EvtSerCxPurge , 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_PURGE(
__in WDFDEVICE Device,
__in ULONG PurgeMask
);
Para definir uma função de retorno de chamada EvtSerCxPurge chamada MyEvtSerCxPurge
, 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_PURGE MyEvtSerCxPurge;
Em seguida, implemente a função de retorno de chamada da seguinte maneira.
NTSTATUS
MyEvtSerCxPurge(
__in WDFDEVICE Device,
__in ULONG PurgeMask
)
{ ... }
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 |