Compartilhar via


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

Confira também

EvtDriverDeviceAdd

IOCTL_SERIAL_PURGE

SerCxInitialize