Compartir a través de


estructura 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 el 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 que no seaNULL.

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 que no seaNULL.

Observaciones

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 desglosa 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 as-is, o incrustarse en una estructura de contexto definida por el controlador por archivo.

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

La macro FsRtlInitPerFileContext inicializa una estructura FSRTL_PER_FILE_CONTEXT.

Parámetros

FileContext

FSRTL_PER_FILE_CONTEXT

Objeto FSRTL_PER_FILE_CONTEXT que se va a inicializar.

OwnerId de

PVOID

Puntero a una variable asignada por 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 null que no sea.

InstanceId de

PVOID

Puntero a una variable asignada por 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 null que no sea.

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 de 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 Valor
cliente mínimo admitido Disponible a partir deWindows Vista.
encabezado de ntifs.h (include Fltkernel.h, Ntifs.h)

Consulte también

FsRtlGetPerFileContextPointer

FsRtlInitPerFileContext

FsRtlInsertPerFileContext

FsRtlTeardownPerFileContexts

PFREE_FUNCTION

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