Compartilhar via


EVT_SERCX2_PURGE_FIFOS função de retorno de chamada (sercx.h)

A função de retorno de chamada de evento EvtSerCx2PurgeFifos é chamada pela versão 2 da extensão da estrutura serial (SerCx2) para limpar os buffers FIFO no hardware do controlador serial.

Sintaxe

EVT_SERCX2_PURGE_FIFOS EvtSercx2PurgeFifos;

void EvtSercx2PurgeFifos(
  [in] WDFDEVICE Device,
  [in] BOOLEAN PurgeRxFifo,
  [in] BOOLEAN PurgeTxFifo
)
{...}

Parâmetros

[in] Device

Um identificador WDFDEVICE para o objeto de dispositivo da estrutura que representa o controlador serial. O driver do controlador serial criou esse objeto em sua função de retorno de chamada EvtDriverDeviceAdd. Para obter mais informações, consulte SerCx2InitializeDevice.

[in] PurgeRxFifo

Se deseja limpar o FIFO de recebimento. Se esse parâmetro estiver definido como TRUE, limpe o FIFO de recebimento. Se FALSE, não limpe o FIFO de recebimento.

[in] PurgeTxFifo

Se deseja limpar o FIFO de transmissão. Se esse parâmetro estiver definido como TRUE, limpe o FIFO de transmissão. Se FALSE, não limpe o FIFO de transmissão.

Valor de retorno

Nenhum

Observações

O driver do controlador serial deve implementar essa função. O driver registra a função na chamada para o método SerCx2InitializeDevice que conclui a inicialização do objeto de dispositivo da estrutura para o controlador serial.

O SerCx2 chama a função EvtSerCx2PurgeFifos quando um cliente (driver periférico) envia uma solicitação de controle IOCTL_SERIAL_PURGE que exige que um ou ambos os buffers FIFO no hardware do controlador serial sejam limpos. Se a solicitação de controle IOCTL_SERIAL_PURGE exigir que solicitações pendentes de leitura ou gravação (IRP_MJ_READ ou IRP_MJ_WRITE) sejam canceladas, o SerCx2 cancelará essas solicitações antes de chamar a função EvtSerCx2PurgeFifos .

O SerCx2 também chama a função EvtSerCx2PurgeFifos quando um cliente abre uma conexão lógica com o dispositivo do controlador serial e obtém um identificador de arquivo para essa conexão. Para obter mais informações, consulte de Objetos de Arquivo da Estrutura.

Exemplos

Para definir uma função de retorno de chamada EvtSerCx2PurgeFifos, primeiro você deve fornecer uma declaração de função que identifique o tipo de função de retorno de chamada que você está definindo. O Windows fornece um conjunto de tipos de função de retorno de chamada para drivers. Declarar uma função usando os tipos de função de retorno de chamada ajuda a análise de código para drivers, SDV (Verificador de Driver Estático) e outras ferramentas de verificação encontram erros e é um requisito para gravar drivers para o sistema operacional Windows.

Por exemplo, para definir uma função de retorno de chamada EvtSerCx2PurgeFifos denominada MyPurgeFifos, use o tipo de função EVT_SERCX2_PURGE_FIFOS, conforme mostrado neste exemplo de código:

EVT_SERCX2_PURGE_FIFOS  MyPurgeFifos;

Em seguida, implemente sua função de retorno de chamada da seguinte maneira:

_Use_decl_annotations_
VOID
  MyPurgeFifos(
    WDFDEVICE  Device,
    BOOLEAN PurgeRxFifo,
    BOOLEAN PurgeTxFifo
    )
  {...}

O tipo de função EVT_SERCX2_PURGE_FIFOS é definido no arquivo de cabeçalho Sercx.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função EVT_SERCX2_PURGE_FIFOS no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers KMDF. Para obter mais informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível a partir do Windows 8.1.
da Plataforma de Destino Área de trabalho
cabeçalho sercx.h
IRQL Chamado no PASSIVE_LEVEL.

Consulte também

IOCTL_SERIAL_PURGE

SerCx2InitializeDevice