Compartilhar via


FSRTL_PER_STREAM_CONTEXT estrutura (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 FilterContexts membro 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 por 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 de NULL não.

InstanceId

Ponteiro para uma variável alocada por 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 de FSRTL_PER_STREAM_CONTEXT a ser livre.

Observações

Os drivers de filtro do sistema de arquivos podem usar uma estrutura 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 o FreeCallback rotinas de todas as estruturas de contexto por fluxo associadas ao fluxo de arquivos.

Observação a rotina de do FreeCallback não pode ser recursivamente chamada para o sistema de arquivos ou adquirir recursos do sistema de arquivos. Além disso, essa rotina deve assumir que o objeto de arquivo do fluxo de arquivos já foi liberado.
 
A estrutura de FSRTL_PER_STREAM_CONTEXT pode ser alocada do pool de páginas ou nãopagados.

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.

Valor de retorno

BOOLIANO

A macro FsRtlSupportsPerStreamContexts retorna VERDADEIRO se o sistema de arquivos der suporte a contextos por fluxo para o fluxo de arquivos, false caso contrário.

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 controle Per-Stream contexto em um driver de filtro do sistema de arquivos herdado.

Requisitos

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

Consulte também

FSRTL_ADVANCED_FCB_HEADER

FSRTL_COMMON_FCB_HEADER

FsRtlGetPerStreamContextPointer

FsRtlInsertPerStreamContext

FsRtlLookupPerStreamContext

FsRtlRemovePerStreamContext

FsRtlTeardownPerStreamContexts

PFREE_FUNCTION

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