Compartir a través de


estructura de FSRTL_PER_FILE_CONTEXT (ntifs.h)

Un controlador de filtro del sistema de archivos heredado puede usar una estructura de FSRTL_PER_FILE_CONTEXT para asociar información de contexto específica del controlador a un archivo abierto.

Sintaxis

typedef struct _FSRTL_PER_FILE_CONTEXT {
  LIST_ENTRY     Links;
  PVOID          OwnerId;
  PVOID          InstanceId;
  PFREE_FUNCTION FreeCallback;
} FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT;

Miembros

Links

Vínculo para esta estructura en la lista de todas las estructuras de contexto por archivo asociadas al mismo archivo. FsRtlInsertPerFileContext inserta este miembro en la lista de todas las estructuras de contexto por archivo de un archivo.

OwnerId

Puntero a un búfer asignado por el controlador de filtro que identifica de forma única al propietario de la estructura de contexto por archivo. El formato de esta variable es específico del controlador de filtro. Los controladores de filtro deben establecer este miembro en un valor distinto de NULL .

InstanceId

Puntero a un búfer asignado por el controlador de filtro que se puede usar para distinguir entre las estructuras de contexto por archivo creadas por el mismo controlador de filtro. El formato de esta variable es específico del controlador de filtro. Los controladores de filtro pueden establecer este miembro en NULL.

FreeCallback

Puntero a una rutina de devolución de llamada que libera la estructura de contexto por archivo. Los controladores de filtro deben establecer este miembro en un valor distinto de NULL .

Comentarios

Para asociar información de contexto a un archivo, un controlador de filtro heredado asigna primero una estructura de FSRTL_PER_FILE_CONTEXT e inicializa mediante FsRtlInsertPerFileContext. A continuación, el controlador usa FsRtlInsertPerFileContext para asociar ese objeto FSRTL_PER_FILE_CONTEXT con el archivo. Cuando el sistema desgarra el objeto de contexto de archivo de un archivo, llama a FsRtlTeardownPerFileContexts , que llama a la rutina FreeCallback especificada en el objeto FSRTL_PER_FILE_CONTEXT . Esa devolución de llamada debe liberar el objeto de contexto específico del controlador.

Los escritores de filtros deben elegir un valor OwnerID que sea significativo y conveniente, como la dirección de un objeto de controlador o un objeto de dispositivo.

Los escritores de filtros deben elegir un valor instanceID que sea significativo y conveniente, como la dirección del objeto de contexto de archivo para el archivo. Use la macro FsRtlGetPerFileContextPointer para recuperar esa dirección de un objeto de archivo.

La estructura FSRTL_PER_FILE_CONTEXT se puede usar tal cual o incrustarse en una estructura de contexto por archivo definida por el controlador.

La estructura FSRTL_PER_FILE_CONTEXT se puede asignar desde un grupo paginado o no paginado.

La macro FsRtlInitPerFileContext inicializa una estructura de FSRTL_PER_FILE_CONTEXT .

Parámetros

FileContext

FSRTL_PER_FILE_CONTEXT

Objeto FSRTL_PER_FILE_CONTEXT que se va a inicializar.

OwnerId

PVOID

Puntero a una variable asignada por el controlador de filtro que identifica de forma única el propietario de la estructura de contexto por archivo. El formato es específico del controlador de filtro. Este parámetro debe tener un valor distinto de NULL .

InstanceId

PVOID

Puntero a una variable asignada por el controlador de filtro que identifica de forma única el propietario de la estructura de contexto por archivo. El formato es específico del controlador de filtro. Este parámetro debe tener un valor distinto de NULL .

FreeCallback

PFREE_FUNCTION

Puntero a una rutina de devolución de llamada que libera la estructura de contexto por archivo.

Valor devuelto

VOID

Ninguno.

Esta macro debe usarse antes de llamar a FsRtlInsertPerFileContext.

Los escritores de filtros deben elegir un valor OwnerID que sea significativo y conveniente, como la dirección de un objeto de controlador o un objeto de dispositivo.

Los escritores de filtros deben usar un valor InstanceID que sea significativo y práctico, como la dirección del objeto de contexto de archivo para el archivo. Use la macro FsRtlGetPerFileContextPointer para recuperar esa dirección de un objeto de archivo.

Para obtener más información sobre cómo usar y crear objetos de contexto, vea Tracking Per-File Context in a Legacy File System Filter Driver.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir deWindows Vista.
Encabezado ntifs.h (incluya Fltkernel.h, Ntifs.h)

Consulte también

FsRtlGetPerFileContextPointer

FsRtlInitPerFileContext

FsRtlInsertPerFileContext

FsRtlTeardownPerFileContexts

PFREE_FUNCTION

Seguimiento Per-File contexto en un controlador de filtro del sistema de archivos heredado