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 de estrutura que representa o controlador serial.

Retornar valor

Nenhum

Comentários

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 está pronto para receber e transmitir dados. A função EvtSerCxFileCleanup deve se concentrar especificamente em tarefas limpo up, como desalocar memória.

Se o driver do controlador serial tiver alocado 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 EvtSerCxFileClose .

Normalmente, as interrupções devem ser desabilitadas somente depois que o objeto de arquivo é liberado. 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 depois que o último identificador para o objeto de arquivo é 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 EvtSerCxFileClose de um driver depois de chamar a função EvtSerCxFileCleanup do driver. O SerCx chama a função EvtSerCxFileClose depois que o objeto de arquivo é liberado, o 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 limpo que são 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 Objetos de arquivo de 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 chamada MyEvtSerCxFileCleanup, você deve primeiro 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_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
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

EvtSerCxFileClose

SerCxInitialize