estrutura SECTION_OBJECT_POINTERS (wdm.h)
A estrutura SECTION_OBJECT_POINTERS , alocada por um sistema de arquivos ou um driver de redirecionamento, é usada pelo gerenciador de memória e pelo gerenciador de cache para armazenar informações relacionadas ao mapeamento de arquivos e cache para um fluxo de arquivos.
Sintaxe
typedef struct _SECTION_OBJECT_POINTERS {
PVOID DataSectionObject;
PVOID SharedCacheMap;
PVOID ImageSectionObject;
} SECTION_OBJECT_POINTERS;
Membros
DataSectionObject
Ponteiro opaco para um objeto de seção de dados (ou seja, uma estrutura CONTROL_AREA ) que é usado para rastrear informações de estado de um fluxo de arquivo de dados. O Gerenciador de Memória define esse membro quando o sistema operacional armazena o fluxo de dados em cache pela primeira vez. Um valor NULL indica que o fluxo de dados não está atualmente na memória; No entanto, esse valor pode ser alterado a qualquer momento.
SharedCacheMap
Ponteiro opaco para um objeto de mapa de cache (ou seja, uma estrutura SHARED_CACHE_MAP ) que é usado para rastrear exibições mapeadas para o fluxo de arquivos de dados. O gerenciador de cache define esse membro quando o sistema operacional armazena o fluxo em cache pela primeira vez. Um valor NULL indica que o fluxo de dados não está armazenado em cache no momento; No entanto, esse valor pode ser alterado a qualquer momento.
ImageSectionObject
Ponteiro opaco para um objeto de seção de imagem (ou seja, uma estrutura CONTROL_AREA ) que é usado para rastrear informações de estado para um fluxo de arquivos executável. O gerenciador de memória define esse membro sempre que uma seção de imagem executável é criada para o fluxo. Um valor NULL indica que a imagem executável atualmente não está na memória; No entanto, esse valor pode ser alterado a qualquer momento.
Comentários
A estrutura SECTION_OBJECT_POINTERS vincula um objeto de arquivo ao objeto de seção de um fluxo de arquivos. Ou seja, por meio de seus membros, a estrutura SECTION_OBJECT_POINTERS conecta um objeto de arquivo específico a estruturas de controle de memória virtual que acompanham o conteúdo do fluxo quando estão na memória e permitem que o sistema operacional busque esses conteúdos quando não estiverem.
Há uma relação um-para-um entre uma estrutura de SECTION_OBJECT_POINTERS e um fluxo de arquivos. Vários objetos de arquivo podem ser associados a um fluxo de arquivo específico, cada um representando uma instância aberta do fluxo. No entanto, apenas uma estrutura SECTION_OBJECT_POINTERS pode ser associada a um determinado fluxo. Se houver vários objetos de arquivo para um fluxo, o membro SectionObjectPointer para todos os objetos de arquivo deverá apontar para a mesma estrutura SECTION_OBJECT_POINTERS (associada ao fluxo).
Para a primeira solicitação aberta do fluxo de arquivos, o sistema de arquivos ou o driver de redirecionamento devem:
Aloque uma estrutura de SECTION_OBJECT_POINTERS de um pool nãopagado.
Inicialize todos os membros da estrutura de SECTION_OBJECT_POINTERS alocada para NULL.
Defina o membro SectionObjectPointer do objeto de arquivo associado para apontar para a estrutura de SECTION_OBJECT_POINTERS inicializada.
Para solicitações abertas subsequentes para o mesmo fluxo de arquivos, o sistema de arquivos ou o driver de redirecionamento devem definir o membro SectionObjectPointer do objeto de arquivo associado para apontar para a estrutura de SECTION_OBJECT_POINTERS alocada anteriormente para o fluxo de arquivos.
Aviso
Os drivers de filtro do sistema de arquivos devem tratar os membros da estrutura SECTION_OBJECT_POINTERS como opacos porque o sistema de arquivos subjacente é responsável pela sincronização dos membros e, portanto, pode alterar seus valores a qualquer momento.
Um arquivo é composto por um ou mais fluxos, dependendo do sistema de arquivos. Para obter mais informações, consulte Fluxos de arquivos, contextos de Stream e contextos de Per-Stream.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h) |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de