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
Seguimiento Per-File contexto en un controlador de filtro del sistema de archivos heredado