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.

Nota La rutina FreeCallback no puede llamar recursivamente al sistema de archivos ni adquirir ningún recurso del sistema de archivos. Además, esta rutina debe suponer que el objeto de archivo de la secuencia de archivos ya se ha liberado.
 
La estructura FSRTL_PER_STREAM_CONTEXT se puede asignar desde un grupo paginado o no paginado.

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

FSRTL_ADVANCED_FCB_HEADER

FSRTL_COMMON_FCB_HEADER

FsRtlGetPerStreamContextPointer

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlTeardownPerStreamContexts

PFREE_FUNCTION

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