Compartir a través de


Función FltDeleteContext (fltkernel.h)

FltDeleteContext marca un contexto especificado para su eliminación.

Sintaxis

VOID FLTAPI FltDeleteContext(
  [in] PFLT_CONTEXT Context
);

Parámetros

[in] Context

Puntero al contexto que se va a eliminar. Este parámetro es obligatorio y no puede ser NULL.

Valor devuelto

Ninguno.

Comentarios

Para obtener más información sobre los contextos, vea Acerca de los contextos de minifiltro.

Dado que los contextos son contadas por referencias, normalmente no es necesario que un controlador de minifiltro llame a una rutina, como FltDeleteContext, para eliminar explícitamente un contexto.

FltDeleteContext marca un contexto para su eliminación. Normalmente, el contexto se libera en cuanto se libera la referencia actual en él, a menos que haya una referencia pendiente en él (por ejemplo, porque otro subproceso sigue usando el contexto).

Debe tener en cuenta los siguientes elementos al usar FltDeleteContext:

  • Cuando un controlador de minifiltro llama a FltDeleteContext, el controlador de minifiltro ya debe tener una referencia al contexto. Sin embargo, cuando el controlador de minifiltro llama a FltDeleteStreamHandleContext, FltDeleteStreamContext, FltDeleteInstanceContext, etc., el controlador de minifiltro no requiere una referencia al contexto. Una vez que el controlador de minifiltro llama a FltDeleteContext, esa referencia al contexto sigue siendo válida. El controlador de minifiltro debe llamar a la rutina FltReleaseContext para liberar la referencia al contexto.

  • FltDeleteContext quita el contexto de las estructuras internas del administrador de filtros. Después, las llamadas adicionales a funciones que obtienen contextos, como FltGetContexts y FltGetInstanceContext, no pueden encontrar ese contexto. Sin embargo, la memoria de contexto no se libera hasta que el recuento de referencias del contexto va a 0.

Los contextos también se pueden eliminar llamando a la rutina de contexto de eliminación adecuada de la tabla siguiente.

Tipo de contexto rutina de Delete-Context
FLT_FILE_CONTEXT FltDeleteFileContext (solo Windows Vista y versiones posteriores).
FLT_INSTANCE_CONTEXT FltDeleteInstanceContext
FLT_SECTION_CONTEXT FltCloseSectionForDataScan (solo Windows 8 y versiones posteriores).
FLT_STREAM_CONTEXT FltDeleteStreamContext
FLT_STREAMHANDLE_CONTEXT FltDeleteStreamHandleContext
FLT_TRANSACTION_CONTEXT FltDeleteTransactionContext (solo Windows Vista y versiones posteriores).
FLT_VOLUME_CONTEXT FltDeleteVolumeContext

Para asignar un nuevo contexto, llame a FltAllocateContext.

Para incrementar el recuento de referencias en un contexto, llame a FltReferenceContext.

Para reducir el recuento de referencias en un contexto, llame a FltReleaseContext.

No se debe eliminar un contexto de sección, FLT_SECTION_CONTEXT tipo, mediante FltDeleteContext. En su lugar, use FltReleaseContext para desasignar un contexto de sección.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
Archivo DLL Fltmgr.sys
IRQL <= APC_LEVEL

Consulte también

FltAllocateContext

FltCloseSectionForDataScan

FltDeleteFileContext

FltDeleteInstanceContext

FltDeleteStreamContext

FltDeleteStreamHandleContext

FltDeleteTransactionContext

FltDeleteVolumeContext

FltReferenceContext

FltReleaseContext