Compartir a través de


estructura FSRTL_PER_STREAM_CONTEXT (ntifs.h)

La estructura FSRTL_PER_STREAM_CONTEXT contiene información de contexto que un controlador de filtro del sistema de archivos mantiene 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 de un objeto de archivo, use el FsRtlGetPerStreamContextPointer macro y convierta el resultado en un puntero PFSRTL_ADVANCED_FCB_HEADER. El puntero de lista es el miembro FilterContexts en 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 que no seaNULL.

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 conveniente, 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
     );

Búfer

Puntero a la estructura FSRTL_PER_STREAM_CONTEXT que se va a liberar.

Observaciones

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 controlador por secuencia.

Cuando un sistema de archivos desgarra el objeto de contexto de secuencia de una secuencia de archivos, debe llamar a FsRtlTeardownPerStreamContexts, que a su vez llama a las rutinas de FreeCallback de todas las estructuras de contexto por secuencia asociadas a la secuencia de archivos.

Nota La rutina FreeCallback no puede llamar de forma recursiva 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 de lo 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 podría 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 Per-Stream Contexto de seguimiento en un controlador de filtro del sistema de archivos heredado.

Requisitos

Requisito Valor
cliente mínimo admitido Esta estructura es Windows XP
encabezado de ntifs.h (incluya Ntifs.h)

Consulte también

FSRTL_ADVANCED_FCB_HEADER

FSRTL_COMMON_FCB_HEADER

FsRtlGetPerStreamContextPointer

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlTeardownPerStreamContexts

PFREE_FUNCTION

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