ponteiro de função PFREE_FUNCTION

Um driver de filtro herdado do sistema de arquivos pode registrar um PFREE_FUNCTION rotina tipada como a rotina de retorno de chamada FreeCallback do filtro. O sistema de arquivos chama FreeCallback quando o sistema de arquivos remove um objeto de contexto de arquivo usando FsRtlTeardownPerFileContexts ou remove um objeto de contexto de fluxo usando FsRtlTeardownPerStreamContexts.

Você deve declarar a rotina de retorno de chamada usando o tipo FREE_FUNCTION . Para obter mais informações, consulte o exemplo na seção Comentários.

Sintaxe

typedef VOID ( *FreeCallback)(
  _In_ PVOID Buffer
);

Parâmetros

Retornar valor

Nenhum

Comentários

Quando um sistema de arquivos remove o objeto de contexto por arquivo de um arquivo, ele deve chamar FsRtlTeardownPerFileContexts. Essa rotina chama as rotinas freecallback de todas as estruturas de contexto por arquivo associadas ao arquivo. Essa rotina de retorno de chamada deve liberar qualquer memória usada para o objeto FSRTL_PER_FILE_CONTEXT e quaisquer informações de contexto associadas. Esse também é o caso de contextos por fluxo quando FsRtlTeardownPerStreamContexts é chamado e FreeCallback liberará a memória usada para objetos FSRTL_PER_STREAM_CONTEXT .

Para comentários sobre como sincronizar o acesso a objetos de contexto por arquivo ou a objetos de contexto por fluxo durante uma chamada para FreeCallback, consulte FsRtlTeardownPerFileContexts e FsRtlTeardownPerStreamContexts.

Observação

A rotina FreeCallback não pode chamar recursivamente para o sistema de arquivos ou adquirir recursos do sistema de arquivos.

Para definir uma função de retorno de chamada FreeCallback chamada MyFreeFunction, 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:

FREE_FUNCTION MyFreeFunction;

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

VOID
 MyFreeFunction (
 __in PVOID Buffer
    )
  {...}

Requisitos

Tipo de Requisito Requisito
Cliente mínimo com suporte Windows Vista
parâmetro Wdm.h (inclua Wdm.h ou Ntddk.h)
IRQL <= APC_LEVEL

Confira também

FsRtlTeardownPerFileContexts

FsRtlTeardownPerStreamContexts

FSRTL_PER_FILE_CONTEXT

FSRTL_PER_STREAM_CONTEXT

Acompanhamento Per-File contexto em um driver de filtro do sistema de arquivos herdado

Acompanhamento Per-Stream contexto em um driver de filtro do sistema de arquivos herdado