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
- Búfer [in]: puntero al FSRTL_PER_FILE_CONTEXT o a la estructura FSRTL_PER_STREAM_CONTEXT que se va a liberar.
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
FsRtlTeardownPerStreamContexts
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