Compartilhar via


estrutura FSRTL_PER_FILEOBJECT_CONTEXT (ntifs.h)

O sistema operacional usa a estrutura de FSRTL_PER_FILEOBJECT_CONTEXT opaca para rastrear estruturas de informações de contexto definidas pelo driver de filtro do sistema de arquivos para um objeto de arquivo.

Sintaxe

typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT {
  LIST_ENTRY Links;
  PVOID      OwnerId;
  PVOID      InstanceId;
} FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT;

Membros

Links

Link para essa estrutura na lista de todas as estruturas de contexto por arquivo-objeto associadas ao mesmo objeto de arquivo. FsRtlInsertPerFileObjectContext insere esse membro na lista de todas as estruturas de contexto por objeto de arquivo para o objeto de arquivo.

OwnerId

Um ponteiro para uma variável alocada pelo driver de filtro que identifica exclusivamente o filtro proprietário da estrutura de contexto por arquivo-objeto. O formato dessa variável é específico do driver de filtro. Os gravadores de filtro devem escolher um valor que seja significativo e conveniente, como o endereço do objeto de dispositivo ou objeto de driver do filtro. Observe que o valor desse membro não pode ser NULL.

InstanceId

Um ponteiro para uma variável alocada pelo driver de filtro que pode ser usada para distinguir entre as estruturas de contexto por objeto de arquivo 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 que seja significativo e conveniente, como o endereço do próprio objeto de arquivo. Observe que o valor desse membro pode ser NULL.

Observações

Os drivers de filtro do sistema de arquivos podem usar a estrutura de FSRTL_PER_FILEOBJECT_CONTEXT opaca para manter informações de contexto para um objeto de arquivo. Essa estrutura pode ser usada as-is ou inserida em uma estrutura de contexto por objeto por arquivo definida pelo driver.

Cada objeto de arquivo pode ter uma lista de estrutura de contexto por objeto de arquivo associada a ele. Cada membro dessa lista (ou seja, uma estrutura de contexto específica por arquivo-objeto) pertence a um driver de filtro. Da perspectiva de um driver de filtro, cada driver de filtro pode associar várias estruturas de contexto por arquivo-objeto ao mesmo objeto de arquivo.

Cada estrutura de contexto por arquivo-objeto definida por filtro deve incluir uma estrutura de FSRTL_PER_FILEOBJECT_CONTEXT inicializada. A estrutura FSRTL_PER_FILEOBJECT_CONTEXT pode ser alocada do pool de páginas ou não de páginas e deve ser inicializada usando a macro FsRtlInitPerFileObjectContext.

Para inserir uma estrutura de FSRTL_PER_FILEOBJECT_CONTEXT ou uma estrutura de contexto por arquivo-objeto definida por filtro (contendo uma estrutura de FSRTL_PER_FILEOBJECT_CONTEXT inicializada) na lista de todas as estruturas de contexto de um objeto de arquivo, use a função FsRtlInsertPerFileObjectContext.

Depois que uma estrutura de contexto FSRTL_PER_FILEOBJECT_CONTEXT ou por arquivo-objeto tiver sido associada a um objeto de arquivo, ela poderá ser recuperada chamando FsRtlLookupPerFileObjectContext ou removida chamando FsRtlRemovePerFileObjectContext (com base nos valores de OwnerId e InstanceId).

Os drivers de minifiltro do sistema de arquivos não devem usar as seguintes funções:

  • FsRtlInitPerFileObjectContext
  • FsRtlInsertPerFileObjectContext
  • FsRtlLookupPerFileObjectContext
  • FsRtlRemovePerFileObjectContext

Em vez disso, os minifiltros podem usar as seguintes funções para associar informações de contexto a um objeto de arquivo:

  • FltAllocateContext
  • FltDeleteContext
  • FltSetStreamHandleContext
  • FltDeleteStreamHandleContext
  • FltGetStreamHandleContext
  • FltReleaseContext

Os drivers de minifiltro do sistema de arquivos não devem usar as funções FsRtlXxxPerFileObjectContext. Em vez disso, os minifiltros podem usar as funções XxxContext para associar informações de contexto a um objeto de arquivo. Para obter uma lista completa, consulte o tópico FSRTL_PER_FILEOBJECT_CONTEXT.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
cabeçalho ntifs.h (inclua Fltkernel.h, Ntifs.h)

Consulte também

DEVICE_OBJECT

DRIVER_OBJECT

FILE_OBJECT

FltAllocateContext

FltDeleteContext

FltDeleteStreamHandleContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext

FsRtlRemovePerFileObjectContext