Compartilhar via


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 as estruturas de contexto por arquivo que são criadas pelo mesmo driver de filtro. Esse parâmetro é opcional.

Valor de retorno

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

Observações

FsRtlRemovePerFileContext remove apenas a primeira estrutura de contexto correspondente por arquivo 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 seus drivers removerem 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 de FreeCallback. O sistema de arquivos remove contextos da lista antes que essa rotina seja chamada.

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

Requisitos

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

Consulte também

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

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