puntero de función PFREE_FUNCTION

Un controlador de filtro heredado del sistema de archivos puede registrar una rutina de PFREE_FUNCTION tipada como rutina de devolución de llamada FreeCallback del filtro. El sistema de archivos llama a FreeCallback cuando el sistema de archivos quita un objeto de contexto de archivo mediante FsRtlTeardownPerFileContexts o quita un objeto de contexto de secuencia mediante FsRtlTeardownPerStreamContexts.

Debe declarar la rutina de devolución de llamada mediante el tipo FREE_FUNCTION . Para obtener más información, vea el ejemplo de la sección Comentarios.

Sintaxis

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

Parámetros

Valor devuelto

None

Observaciones

Cuando un sistema de archivos desglosa el objeto de contexto por archivo para un archivo, debe llamar a FsRtlTeardownPerFileContexts. Esta rutina llama a las rutinas FreeCallback de todas las estructuras de contexto por archivo asociadas al archivo. Esta rutina de devolución de llamada debe liberar cualquier memoria usada para el objeto FSRTL_PER_FILE_CONTEXT y cualquier información de contexto asociada. Este es también el caso de los contextos por secuencia cuando se llama a FsRtlTeardownPerStreamContexts y FreeCallback liberará memoria usada para FSRTL_PER_STREAM_CONTEXT objetos.

Para obtener comentarios sobre cómo sincronizar el acceso a objetos de contexto por archivo o a objetos de contexto por secuencia durante una llamada a FreeCallback, consulte FsRtlTeardownPerFileContexts y FsRtlTeardownPerStreamContexts.

Nota

La rutina FreeCallback no puede llamar recursivamente al sistema de archivos ni adquirir ningún recurso del sistema de archivos.

Para definir una función de devolución de llamada FreeCallback denominada MyFreeFunction, primero debe proporcionar una declaración de función que requieren el Comprobador de controladores estáticos (SDV) y otras herramientas de comprobación, como se indica a continuación:

FREE_FUNCTION MyFreeFunction;

A continuación, implemente la función de devolución de llamada de la siguiente manera:

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

Requisitos

Tipo de requisito Requisito
Cliente mínimo compatible Windows Vista
Encabezado Wdm.h (incluya Wdm.h o Ntddk.h)
IRQL <= APC_LEVEL

Consulte también

FsRtlTeardownPerFileContexts

FsRtlTeardownPerStreamContexts

FSRTL_PER_FILE_CONTEXT

FSRTL_PER_STREAM_CONTEXT

Seguimiento Per-File contexto en un controlador de filtro del sistema de archivos heredado

Seguimiento Per-Stream contexto en un controlador de filtro del sistema de archivos heredado