estrutura FSRTL_PER_STREAM_CONTEXT (ntifs.h)

A estrutura FSRTL_PER_STREAM_CONTEXT contém informações de contexto que um driver de filtro do sistema de arquivos mantém sobre um fluxo de arquivos.

Sintaxe

typedef struct _FSRTL_PER_STREAM_CONTEXT {
  LIST_ENTRY     Links;
  PVOID          OwnerId;
  PVOID          InstanceId;
  PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;

Membros

Links

Link para essa estrutura na lista de todas as estruturas de contexto por fluxo associadas ao mesmo fluxo de arquivos. FsRtlInsertPerStreamContext insere esse membro na lista de todas as estruturas de contexto por fluxo para um fluxo de arquivos. Para obter um ponteiro para o cabeçalho da lista de um objeto de arquivo, use a macro FsRtlGetPerStreamContextPointer e converta o resultado em um ponteiro PFSRTL_ADVANCED_FCB_HEADER . O ponteiro de lista é o membro FilterContexts na estrutura de cabeçalho fcb (bloco de controle de arquivo) avançado para o fluxo de arquivos.

OwnerId

Ponteiro para uma variável alocada pelo driver de filtro que identifica exclusivamente o proprietário da estrutura de contexto por fluxo. O formato dessa variável é específico do driver de filtro. Os gravadores de filtro devem escolher um valor significativo e conveniente, como o endereço de um objeto de driver ou objeto de dispositivo. Os drivers de filtro devem definir esse membro como um valor não NULL .

InstanceId

Ponteiro para uma variável alocada pelo driver de filtro que pode ser usada para distinguir entre as estruturas de contexto por fluxo criadas pelo mesmo driver de filtro. O formato dessa variável é específico do driver de filtro. Os gravadores de filtro devem escolher um valor significativo e conveniente, como o endereço do objeto de contexto de fluxo para o fluxo de arquivos. (Para obter esse endereço de um objeto de arquivo, use a macro FsRtlGetPerStreamContextPointer .)

Esse membro é opcional e pode ser NULL.

FreeCallback

Ponteiro para uma rotina de retorno de chamada que libera a estrutura de contexto por fluxo. Essa rotina e seus parâmetros são definidos da seguinte maneira:

VOID
(*PFREE_FUNCTION) (
     IN PVOID Buffer
     );

Buffer

Ponteiro para a estrutura FSRTL_PER_STREAM_CONTEXT a ser livre.

Comentários

Os drivers de filtro do sistema de arquivos podem usar uma estrutura de FSRTL_PER_STREAM_CONTEXT para manter informações de contexto para um fluxo de arquivos. Essa estrutura pode ser usada como está ou inserida em uma estrutura de contexto por fluxo definida pelo driver.

Quando um sistema de arquivos rasga o objeto de contexto de fluxo de um fluxo de arquivos, ele deve chamar FsRtlTeardownPerStreamContexts, que por sua vez chama as rotinas FreeCallback de todas as estruturas de contexto por fluxo associadas ao fluxo de arquivos.

Nota A rotina FreeCallback não pode chamar recursivamente para o sistema de arquivos ou adquirir recursos do sistema de arquivos. Além disso, essa rotina deve assumir que o objeto de arquivo para o fluxo de arquivos já foi liberado.
 
A estrutura FSRTL_PER_STREAM_CONTEXT pode ser alocada do pool paginado ou nãopagado.

A macro FsRtlSupportsPerStreamContexts determina se um sistema de arquivos dá suporte a contextos por fluxo para um determinado fluxo de arquivos.

BOOLEAN FsRtlSupportsPerStreamContexts(
  [in] PFILE_OBJECT FileObject
);

Parâmetros

FileObject [in]

PFILE_OBJECT

Um ponteiro para um objeto de arquivo para o fluxo de arquivos.

Retornar valor

BOOLIANO

A macro FsRtlSupportsPerStreamContexts retornará TRUE se o sistema de arquivos der suporte a contextos por fluxo para o fluxo de arquivos, caso contrário, FALSE .

Os drivers de filtro do sistema de arquivos chamam FsRtlSupportsPerStreamContexts para determinar se o sistema de arquivos subjacente dá suporte a contextos por fluxo para o fluxo de arquivos representado por um determinado objeto de arquivo. Observe que um sistema de arquivos pode dar suporte a contextos por fluxo para alguns tipos de arquivos, mas não para outros. Por exemplo, NTFS e FAT atualmente não dão suporte a contextos por fluxo para arquivos de paginação.

Para obter mais informações, consulte Acompanhamento Per-Stream contexto em um driver de filtro do sistema de arquivos herdado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Essa estrutura é o Windows XP
Cabeçalho ntifs.h (inclua Ntifs.h)

Confira também

FSRTL_ADVANCED_FCB_HEADER

FSRTL_COMMON_FCB_HEADER

FsRtlGetPerStreamContextPointer

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlTeardownPerStreamContexts

PFREE_FUNCTION

Acompanhamento Per-Stream contexto em um driver de filtro do sistema de arquivos herdado