Compartilhar via


Função FsRtlRemovePerFileObjectContext (ntifs.h)

Para um driver de filtro do sistema de arquivos "herdado", a função FsRtlRemovePerFileObjectContext desvincula uma estrutura de informações de contexto por objeto de arquivo da lista de contextos por objeto de arquivo anteriormente associados a um objeto de arquivo.

Sintaxe

PFSRTL_PER_FILEOBJECT_CONTEXT FsRtlRemovePerFileObjectContext(
  [in]           PFILE_OBJECT FileObject,
  [in, optional] PVOID        OwnerId,
  [in, optional] PVOID        InstanceId
);

Parâmetros

[in] FileObject

Um ponteiro para um objeto de arquivo para o qual remover informações de contexto.

[in, optional] OwnerId

Um ponteiro para uma variável alocada pelo chamador que identifica exclusivamente o filtro proprietário da estrutura de contexto por objeto de arquivo. O formato dessa variável é específico do driver de filtro.

[in, optional] InstanceId

Um ponteiro para uma variável alocada pelo chamador que pode ser usada para distinguir entre estruturas de contexto por objeto de arquivo criadas pelo mesmo driver de filtro. O formato dessa variável é específico do driver de filtro. Esse parâmetro é opcional e pode ser NULL.

Retornar valor

FsRtlRemovePerFileObjectContext desvincula e retorna um ponteiro para o primeiro contexto correspondente por objeto de arquivo encontrado. Se nenhuma correspondência for encontrada, FsRtlRemovePerFileObjectContext retornará NULL.

Comentários

Um driver de filtro do sistema de arquivos "herdado" chama FsRtlRemovePerFileObjectContext para desvincular sua própria estrutura de contexto por objeto de arquivo da lista de contextos por objeto de arquivo associados ao objeto de arquivo. Todas essas estruturas de contexto devem ter sido associadas anteriormente ao objeto de arquivo chamando FsRtlInsertPerFileObjectContext.

Se a chamada para FsRtlRemovePerFileObjectContext for bem-sucedida, a primeira estrutura de contexto por objeto de arquivo correspondente a OwnerId (e InstanceId, se presente) será desvinculada e um ponteiro para ela será retornado. Esse ponteiro pode ser usado pelo driver de filtro para liberar a estrutura de contexto desvinculada.

ObservaçãoFsRtlRemovePerFileObjectContext desvincula apenas a primeira estrutura de contexto correspondente por objeto de arquivo encontrada. Se houver contextos correspondentes adicionais por objeto de arquivo, o driver de filtro deverá chamar FsRtlRemovePerFileObjectContext quantas vezes forem necessárias para desvincular todos eles.
 
Para inicializar uma estrutura de contexto por objeto de arquivo, use a macro FsRtlInitPerFileObjectContext .

Para associar uma estrutura de contexto inicializada por objeto de arquivo a um objeto de arquivo, use a função FsRtlInsertPerFileObjectContext .

Para recuperar uma estrutura de contexto por objeto de arquivo associada a um objeto de arquivo, use a função FsRtlLookupPerFileObjectContext .

Nota Os drivers de filtro herdados devem chamar a função FsRtlRemovePerFileObjectContext para desvincular e liberar a estrutura de informações de contexto antes da conclusão do IRP_MJ_CLOSE. Caso contrário, a memória alocada para essa estrutura de contexto será vazada.
 
Além disso, os drivers de minifiltro do sistema de arquivos não devem usar as funções FsRtlXxxPerFileObjectContext . Em vez disso, eles podem usar as funções de ContextoFltXxx apropriadas. Para obter informações adicionais, consulte o tópico FSRTL_PER_FILEOBJECT_CONTEXT .

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_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext