Compartir a través de


Función FsRtlRemovePerFileObjectContext (ntifs.h)

En el caso de un controlador de filtro del sistema de archivos "heredado", el FsRtlRemovePerFileObjectContext función desvincula una estructura de información de contexto por objeto por archivo de la lista de contextos por objeto de archivo asociados previamente a un objeto de archivo.

Sintaxis

PFSRTL_PER_FILEOBJECT_CONTEXT FsRtlRemovePerFileObjectContext(
  [in]           PFILE_OBJECT FileObject,
  [in, optional] PVOID        OwnerId,
  [in, optional] PVOID        InstanceId
);

Parámetros

[in] FileObject

Puntero a un objeto de archivo para el que se va a quitar información de contexto.

[in, optional] OwnerId

Puntero a una variable asignada por el autor de la llamada que identifica de forma única el filtro propietario de la estructura de contexto por archivo-objeto. El formato de esta variable es específico del controlador de filtro.

[in, optional] InstanceId

Puntero a una variable asignada por el autor de la llamada que se puede usar para distinguir entre las estructuras de contexto por objeto de archivo creadas por el mismo controlador de filtro. El formato de esta variable es específico del controlador de filtro. Este parámetro es opcional y se puede NULL.

Valor devuelto

FsRtlRemovePerFileObjectContext desvincular y devuelve un puntero al primer contexto de objeto por archivo coincidente que se encuentra. Si no se encuentra ninguna coincidencia, FsRtlRemovePerFileObjectContext devuelve NULL.

Observaciones

Un controlador de filtro del sistema de archivos "heredado" llama a FsRtlRemovePerFileObjectContext para desvincular su propia estructura de contexto por objeto por archivo de la lista de contextos por objeto de archivo asociados al objeto de archivo. Todas estas estructuras de contexto deben haberse asociado previamente al objeto de archivo llamando a FsRtlInsertPerFileObjectContext.

Si la llamada a FsRtlRemovePerFileObjectContext se realiza correctamente, la primera estructura de contexto por archivo que coincide con OwnerId (y InstanceId, si está presente) se desvincula y se devuelve un puntero a él. El controlador de filtro puede usar este puntero para liberar la estructura de contexto desvinculada.

NotaFsRtlRemovePerFileObjectContext desvincula solo la primera estructura de contexto por objeto por archivo que se encuentra. Si hay contextos adicionales de coincidencia por objeto de archivo, el controlador de filtro debe llamar a FsRtlRemovePerFileObjectContext tantas veces como sea necesario para desvincularlos todos.
 
Para inicializar una estructura de contexto por objeto de archivo, use la macro de FsRtlInitPerFileObjectContext .

Para asociar una estructura de contexto por objeto por archivo inicializada con un objeto de archivo, use la función FsRtlInsertPerFileObjectContext.

Para recuperar una estructura de contexto por objeto de archivo asociada a un objeto de archivo, use la función FsRtlLookupPerFileObjectContext.

Nota Controladores de filtro heredados deben llamar a la función FsRtlRemovePerFileObjectContext para desvincular y liberar la estructura de información de contexto antes de completar IRP_MJ_CLOSE. De lo contrario, se perderá la memoria asignada a esa estructura de contexto.
 
Además, los controladores de minifiltro del sistema de archivos no deben usar las funciones de FsRtlXxxPerFileObjectContext. En su lugar, pueden usar las funciones FltXxxContext adecuadas. Para obtener más información, consulte el tema FSRTL_PER_FILEOBJECT_CONTEXT.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista
de la plataforma de destino de Universal
encabezado de ntifs.h (include Fltkernel.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= APC_LEVEL

Consulte también

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext