Macro FsRtlInitPerStreamContext (ntifs.h)
A macro FsRtlInitPerStreamContext inicializa uma estrutura de contexto do driver de filtro.
Sintaxe
void FsRtlInitPerStreamContext(
_fc,
_owner,
_inst,
_cb
);
Parâmetros
_fc
Ponteiro para uma estrutura de FSRTL_PER_STREAM_CONTEXT alocada pelo chamador a ser usada 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. Os dois tipos de estrutura geralmente são alocados chamando ExAllocatePoolWithTag.
_owner
Ponteiro para uma variável alocada pelo chamador que identifica exclusivamente o proprietário da estrutura de contexto por fluxo. O formato dessa variável é driver de filtro – específico. 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 chamadores devem especificar um valor não NULL para esse parâmetro.
_inst
Ponteiro para um driver de filtro – variável alocada que pode ser usada para distinguir entre as estruturas de contexto por fluxo criadas pelo mesmo driver de filtro. O formato dessa variável é driver de filtro – específico. 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 parâmetro é opcional e pode ser NULL.
_cb
Ponteiro para uma rotina de retorno de chamada que libera a estrutura de contexto por fluxo. Os chamadores devem especificar um valor não NULL para esse parâmetro. Essa rotina e seus parâmetros são definidos da seguinte maneira:
typedef VOID (*PFREE_FUNCTION) ( IN PVOID Buffer ); |
- Buffer
Ponteiro para a estrutura de contexto por fluxo a ser liberada. A rotina FreeCallback normalmente converte esse ponteiro para o tipo de ponteiro de estrutura apropriado e o libera chamando ExFreePool.
Retornar valor
Nenhum
Comentários
Um driver de filtro do sistema de arquivos usa a macro FsRtlInitPerStreamContext para inicializar uma estrutura de contexto por fluxo recém-alocada antes de associá-la a um fluxo de arquivos. A estrutura de contexto inicializada pode ser passada como um parâmetro para FsRtlInsertPerStreamContext.
FsRtlInitPerStreamContext armazena o endereço da rotina FreeCallback no membro FreeCallback da estrutura FSRTL_PER_STREAM_CONTEXT.
A rotina FreeCallback é chamada em IRQL <= APC_LEVEL. Normalmente, ele é chamado em IRQL PASSIVE_LEVEL.
Depois que a estrutura de contexto tiver sido associada a um fluxo de arquivos, ela poderá ser recuperada chamando FsRtlLookupPerStreamContext ou removida chamando FsRtlRemovePerStreamContext.
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 | Windows XP; Pacote cumulativo de atualizações para Windows 2000 Service Pack 4 (SP4) |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
IRQL | Qualquer nível |
Confira também
FsRtlGetPerStreamContextPointer