estructura FSRTL_PER_STREAM_CONTEXT (ntifs.h)
La estructura de FSRTL_PER_STREAM_CONTEXT contiene información de contexto que mantiene un controlador de filtro del sistema de archivos sobre una secuencia de archivos.
Sintaxis
typedef struct _FSRTL_PER_STREAM_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
Miembros
Links
Vínculo para esta estructura en la lista de todas las estructuras de contexto por secuencia asociadas a la misma secuencia de archivos. FsRtlInsertPerStreamContext inserta este miembro en la lista de todas las estructuras de contexto por secuencia de una secuencia de archivos. Para obtener un puntero al encabezado de la lista desde un objeto de archivo, use la macro FsRtlGetPerStreamContextPointer y convierta el resultado en un puntero PFSRTL_ADVANCED_FCB_HEADER . El puntero de lista es el miembro FilterContexts de la estructura de encabezado del bloque de control de archivos avanzado (FCB) para la secuencia de archivos.
OwnerId
Puntero a una variable asignada por el controlador de filtro que identifica de forma única el propietario de la estructura de contexto por secuencia. El formato de esta variable es específico del controlador de filtro. Los escritores de filtros deben elegir un valor que sea significativo y conveniente, como la dirección de un objeto de controlador o un objeto de dispositivo. Los controladores de filtro deben establecer este miembro en un valor distinto de NULL .
InstanceId
Puntero a una variable asignada por el controlador de filtro que se puede usar para distinguir entre las estructuras de contexto por secuencia 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 objeto de contexto de secuencia para la secuencia de archivos. (Para obtener esta dirección de un objeto de archivo, use la macro FsRtlGetPerStreamContextPointer ).
Este miembro es opcional y puede ser NULL.
FreeCallback
Puntero a una rutina de devolución de llamada que libera la estructura de contexto por secuencia. Esta rutina y sus parámetros se definen de la siguiente manera:
VOID
(*PFREE_FUNCTION) (
IN PVOID Buffer
);
Buffer
Puntero a la estructura FSRTL_PER_STREAM_CONTEXT que se va a liberar.
Comentarios
Los controladores de filtro del sistema de archivos pueden usar una estructura de FSRTL_PER_STREAM_CONTEXT para mantener la información de contexto de una secuencia de archivos. Esta estructura se puede usar tal como está o incrustada en una estructura de contexto definida por el controlador.
Cuando un sistema de archivos desglosa el objeto de contexto de secuencia de una secuencia de archivos, debe llamar a FsRtlTeardownPerStreamContexts, que a su vez llama a las rutinas FreeCallback de todas las estructuras de contexto por secuencia asociadas a la secuencia de archivos.
La macro FsRtlSupportsPerStreamContexts determina si un sistema de archivos admite contextos por secuencia para una secuencia de archivos determinada.
BOOLEAN FsRtlSupportsPerStreamContexts(
[in] PFILE_OBJECT FileObject
);
Parámetros
FileObject [in]
PFILE_OBJECT
Puntero a un objeto de archivo para la secuencia de archivos.
Valor devuelto
BOOLEAN
La macro FsRtlSupportsPerStreamContexts devuelve TRUE si el sistema de archivos admite contextos por secuencia para la secuencia de archivos, FALSE en caso contrario.
Los controladores de filtro del sistema de archivos llaman a FsRtlSupportsPerStreamContexts para determinar si el sistema de archivos subyacente admite contextos por secuencia para la secuencia de archivos representada por un objeto de archivo determinado. Tenga en cuenta que un sistema de archivos puede admitir contextos por secuencia para algunos tipos de archivos, pero no para otros. Por ejemplo, NTFS y FAT no admiten actualmente contextos por secuencia para paginar archivos.
Para obtener más información, vea Tracking Per-Stream Context in a Legacy File System Filter Driver.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Esta estructura es Windows XP |
Encabezado | ntifs.h (incluya Ntifs.h) |
Consulte también
FsRtlGetPerStreamContextPointer
FsRtlTeardownPerStreamContexts
Seguimiento del contexto de Per-Stream en un controlador de filtro del sistema de archivos heredado