Compartir a través de


estructura FSRTL_PER_FILEOBJECT_CONTEXT (ntifs.h)

El sistema operativo usa la estructura de FSRTL_PER_FILEOBJECT_CONTEXT opaca para realizar un seguimiento de las estructuras de información de contexto definidas por el controlador del sistema de archivos para un objeto de archivo.

Sintaxis

typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT {
  LIST_ENTRY Links;
  PVOID      OwnerId;
  PVOID      InstanceId;
} FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT;

Miembros

Links

Vínculo para esta estructura en la lista de todas las estructuras de contexto por objeto de archivo asociadas al mismo objeto de archivo. FsRtlInsertPerFileObjectContext inserta este miembro en la lista de todas las estructuras de contexto por archivo-objeto para el objeto de archivo.

OwnerId

Puntero a una variable asignada por el controlador de filtro 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. Los escritores de filtros deben elegir un valor que sea significativo y práctico, como la dirección del objeto de dispositivo o del objeto de controlador del filtro. Tenga en cuenta que el valor de este miembro no puede ser NULL.

InstanceId

Puntero a una variable asignada por el controlador de filtro que se puede usar para distinguir entre las estructuras de contexto por archivo-objeto creadas por el mismo controlador de filtro. El formato de esta variable es específico del controlador de filtro. Los escritores de filtros deben elegir un valor que sea significativo y práctico, como la dirección del propio objeto de archivo. Tenga en cuenta que el valor de este miembro puede ser NULL.

Comentarios

Los controladores de filtro del sistema de archivos pueden usar la estructura de FSRTL_PER_FILEOBJECT_CONTEXT opaco para mantener información de contexto para un objeto de archivo. Esta estructura se puede usar tal cual o incrustada en una estructura de contexto definida por el controlador por objeto.

Cada objeto de archivo puede tener una lista de estructuras de contexto por archivo-objeto asociada. Cada miembro de esta lista (es decir, una estructura de contexto de objeto por archivo determinada) es propiedad de un controlador de filtro. Desde la perspectiva de un controlador de filtro, cada controlador de filtro puede asociar varias estructuras de contexto por archivo-objeto para el mismo objeto de archivo.

Cada estructura de contexto por objeto definida por filtro debe incluir una estructura de FSRTL_PER_FILEOBJECT_CONTEXT inicializada. La estructura de FSRTL_PER_FILEOBJECT_CONTEXT se puede asignar desde un grupo paginado o no de página y se debe inicializar mediante la macro FsRtlInitPerFileObjectContext .

Para insertar una estructura de FSRTL_PER_FILEOBJECT_CONTEXT o una estructura de contexto por objeto definida por filtro (que contiene una estructura de FSRTL_PER_FILEOBJECT_CONTEXT inicializada) en la lista de todas las estructuras de contexto de un objeto de archivo, use la función FsRtlInsertPerFileObjectContext .

Después de asociar una estructura de contexto de FSRTL_PER_FILEOBJECT_CONTEXT o por objeto a un objeto de archivo, se puede recuperar llamando a FsRtlLookupPerFileObjectContext o quitando llamando a FsRtlRemovePerFileObjectContext (basado en los valores de OwnerId e InstanceId).

Los controladores minifiltros del sistema de archivos no deben usar las siguientes funciones:

En su lugar, los minifiltros pueden usar las siguientes funciones para asociar información de contexto a un objeto de archivo:

Los controladores minifiltros del sistema de archivos no deben usar las funciones FsRtlXxxPerFileObjectContext . En su lugar, los minifiltros pueden usar las funciones FltXxxContext para asociar información de contexto a un objeto de archivo. Para obtener una lista completa, consulte el tema FSRTL_PER_FILEOBJECT_CONTEXT .

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Encabezado ntifs.h (incluya Fltkernel.h, Ntifs.h)

Consulte también

DEVICE_OBJECT

DRIVER_OBJECT

FILE_OBJECT

FltAllocateContext

FltDeleteContext

FltDeleteStreamHandleContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext

FsRtlRemovePerFileObjectContext