Compartir a través de


Función FltDeleteFileContext (fltkernel.h)

La rutina FltDeleteFileContext recupera y elimina un contexto de archivo que un controlador de minifiltro determinado ha establecido para un archivo determinado.

Sintaxis

NTSTATUS FLTAPI FltDeleteFileContext(
  [in]  PFLT_INSTANCE Instance,
  [in]  PFILE_OBJECT  FileObject,
  [out] PFLT_CONTEXT  *OldContext
);

Parámetros

[in] Instance

Puntero de instancia opaco para el autor de la llamada. Este parámetro es obligatorio y no puede ser NULL.

[in] FileObject

Puntero de objeto de archivo para el archivo. Este parámetro es obligatorio y no puede ser NULL.

[out] OldContext

Puntero a una variable asignada por el autor de la llamada que recibe la dirección del contexto eliminado. Si no se encuentra ningún contexto coincidente, esta variable recibe NULL_CONTEXT. Este parámetro es opcional y puede ser NULL. Para obtener más información sobre este parámetro, vea la siguiente sección Comentarios.

Valor devuelto

FltDeleteFileContext devuelve STATUS_SUCCESS o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_NOT_FOUND No se encontró ningún contexto coincidente. Se trata de un código de error.
STATUS_NOT_SUPPORTED No se admiten contextos de archivo para este archivo. Se trata de un código de error.

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 FltDeleteFileContext o FltDeleteContext para eliminar explícitamente un contexto.

Un controlador de minifiltro llama a FltDeleteFileContext para recuperar y eliminar un contexto de archivo que estableció anteriormente para un archivo mediante una llamada a FltSetFileContext.

Si el parámetro OldContext es NULL en la entrada y se encuentra un contexto de archivo coincidente, FltDeleteFileContext libera la referencia agregada por la llamada anterior del controlador minifiltro a FltSetFileContext. Normalmente, el contexto eliminado se libera inmediatamente a menos que haya una referencia pendiente en él (por ejemplo, porque otro subproceso sigue usando el contexto).

Si el parámetro OldContext no es NULL y se encuentra y devuelve un contexto de archivo coincidente, el autor de la llamada es responsable de liberar la referencia que ha agregado FltSetFileContext. Para liberar esta referencia, el controlador de minifiltro debe llamar a FltReleaseContext en el contexto de archivo eliminado tan pronto como sea posible después de realizar cualquier limpieza necesaria.

Para asignar un nuevo contexto, llame a FltAllocateContext.

Para determinar si se admiten contextos de archivo para un archivo determinado, llame a FltSupportsFileContexts o FltSupportsFileContextsEx.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista y versiones posteriores
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
IRQL <= APC_LEVEL

Consulte también

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx