Função FsRtlRemovePerFileContext (ntifs.h)

A rotina FsRtlRemovePerFileContext retorna um ponteiro para um objeto FSRTL_PER_FILE_CONTEXT associado a um arquivo. FsRtlRemovePerFileContext remove o objeto FSRTL_PER_FILE_CONTEXT da lista que ocupa, juntamente com as informações de contexto específicas do driver associado.

Sintaxe

PFSRTL_PER_FILE_CONTEXT FsRtlRemovePerFileContext(
  [in]           PVOID *PerFileContextPointer,
  [in, optional] PVOID OwnerId,
  [in, optional] PVOID InstanceId
);

Parâmetros

[in] PerFileContextPointer

Um ponteiro para um ponteiro opaco usado pelo pacote FSRTL (biblioteca de runtime do sistema de arquivos) para acompanhar contextos de arquivo. Para obter esse ponteiro de um objeto de arquivo, use a macro FsRtlGetPerFileContextPointer .

[in, optional] OwnerId

Um ponteiro para uma variável alocada pelo driver de filtro que identifica exclusivamente o proprietário da estrutura de contexto por arquivo. Esse parâmetro é opcional, mas deve ser não NULL se InstanceId não for NULL.

[in, optional] InstanceId

Um ponteiro para uma variável alocada pelo driver de filtro que pode ser usada para distinguir entre estruturas de contexto por arquivo criadas pelo mesmo driver de filtro. Esse parâmetro é opcional.

Retornar valor

Um ponteiro para o primeiro FSRTL_PER_FILE_CONTEXT que corresponde a OwnerId e InstanceId, se especificado. Se nenhuma correspondência for encontrada ou se o sistema não oferecer suporte a informações de contexto por arquivo, essa rotina retornará NULL.

Comentários

FsRtlRemovePerFileContext remove apenas a primeira estrutura de contexto por arquivo correspondente encontrada. Se houver contextos correspondentes adicionais por arquivo, o driver de filtro deverá chamar FsRtlRemovePerFileContext quantas vezes forem necessárias para removê-los todos.

O driver de filtro do sistema de arquivos deve liberar a memória usada para essas informações de contexto depois que o FSRTL_PER_FILE_CONTEXT tiver sido removido.

Use essa rotina para que seus drivers removam contextos somente quando o driver precisar descartar informações de contexto por arquivo enquanto o arquivo ainda estiver aberto. Os contextos são removidos quando um arquivo é fechado usando FsRtlTeardownPerFileContexts.

Não use essa rotina dentro de sua rotina FreeCallback . O sistema de arquivos remove contextos da lista antes que essa rotina seja chamada.

Não use essa rotina dentro de seu manipulador de IRP_CLOSE. Você não será notificado quando o fluxo for derrubado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua FltKernel.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

Confira também

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

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