Compartir a través de


Función FsRtlRemovePerFileObjectContext (ntifs.h)

Para un controlador de filtro del sistema de archivos "heredado", la función FsRtlRemovePerFileObjectContext desvincula una estructura de información de contexto por objeto de archivo de la lista de contextos por objeto de archivo asociados anteriormente 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 puede ser NULL.

Valor devuelto

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

Comentarios

Un controlador de filtro del sistema de archivos "heredado" llama a FsRtlRemovePerFileObjectContext para desvincular su propia estructura de contexto por objeto de 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 (e InstanceId, si está presente) está desvinculada 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 coincidente que se encuentra. Si hay contextos por objeto por archivo adicionales, 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 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 que está asociada a un objeto de archivo, use la función FsRtlLookupPerFileObjectContext .

Nota Los 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 FsRtlXxxPerFileObjectContext . En su lugar, pueden usar las funciones de contexto FltXxxadecuadas . Para obtener más información, consulte el tema FSRTL_PER_FILEOBJECT_CONTEXT .

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Universal
Encabezado ntifs.h (incluya Fltkernel.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Consulte también

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext