Compartilhar via


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

A função de retorno de chamada de evento EvtSerCxFileCleanup notifica o driver do controlador serial de que um cliente fechou o último identificador para o objeto de arquivo que representa o dispositivo do controlador serial.

Sintaxe

EVT_SERCX_FILECLEANUP EvtSercxFilecleanup;

void EvtSercxFilecleanup(
  [in] WDFDEVICE Device
)
{...}

Parâmetros

[in] Device

Um identificador WDFDEVICE para o objeto de dispositivo da estrutura que representa o controlador serial.

Valor de retorno

Nenhum

Observações

Essa função pode desalocar determinados recursos do sistema que o driver alocou anteriormente para o tempo de vida do objeto de arquivo. Em conjunto com a função EvtSerCxFileClose, a função EvtSerCxFileCleanup deve remover o dispositivo do controlador serial do estado em que ele está pronto para receber e transmitir dados. A função EvtSerCxFileCleanup deve se concentrar especificamente em tarefas de limpeza, como desalocar memória.

Se o driver do controlador serial alocou memória anteriormente apenas para o tempo de vida do objeto de arquivo que agora está fechado, o driver deverá desalocar essa memória na função EvtSerCxFileCleanup ou função EvtSerCxFileClose.

Normalmente, as interrupções devem ser desabilitadas somente após a liberação do objeto de arquivo. Assim, a função EvtSerCxFileClose, e não a função EvtSerCxFileCleanup, deve desabilitar as interrupções.

O SerCx chama a função EvtSerCxFileCleanup de um driver após o último identificador para o objeto de arquivo ser fechado. Devido a solicitações de E/S pendentes, esse objeto ainda pode não ser liberado. Após essa chamada, o driver não recebe novas solicitações para operações de E/S.

O SerCx chama a função de EvtSerCxFileClose do driver depois de chamar a função de EvtSerCxFileCleanup do do driver. O SerCx chama a função EvtSerCxFileClose após a liberação do objeto de arquivo, que ocorre somente quando todas as solicitações de E/S pendentes são concluídas ou canceladas.

A função EvtSerCxFileCleanup é opcional. Se um driver de controlador serial não implementar essa função, a função EvtSerCxFileClose do driver deverá lidar com todas as tarefas de limpeza necessárias após o fechamento do último identificador de arquivo.

Para registrar uma função de retorno de chamada EvtSerCxFileCleanup, o driver deve chamar o método SerCxInitialize.

Para obter mais informações, consulte de Objetos de Arquivo da Estrutura.

Exemplos

O tipo de função para esse retorno de chamada é declarado em Sercx.h, da seguinte maneira.

typedef VOID
  EVT_SERCX_FILECLEANUP(
    __in WDFDEVICE Device
    );

Para definir uma função de retorno de chamada EvtSerCxFileCleanup denominada MyEvtSerCxFileCleanup, primeiro você deve fornecer uma declaração de função que SDV (Static Driver Verifier) e outras ferramentas de verificação exigem, da seguinte maneira.

EVT_SERCX_FILECLEANUP MyEvtSerCxFileCleanup;

Em seguida, implemente a função de retorno de chamada da seguinte maneira.

VOID
  MyEvtSerCxFileCleanup(
    __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 para drivers KMDF.

Requisitos

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

Consulte também

EvtSerCxFileClose

SerCxInitialize