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