Share via


SECTION_OBJECT_POINTERS struttura (wdm.h)

La struttura SECTION_OBJECT_POINTERS , allocata da un file system o da un driver di reindirizzamento, viene usata dalla gestione memoria e dalla gestione cache per archiviare il mapping dei file e le informazioni correlate alla cache per un flusso di file.

Sintassi

typedef struct _SECTION_OBJECT_POINTERS {
  PVOID DataSectionObject;
  PVOID SharedCacheMap;
  PVOID ImageSectionObject;
} SECTION_OBJECT_POINTERS;

Members

DataSectionObject

Puntatore opaco a un oggetto sezione dati, ovvero una struttura CONTROL_AREA , usata per tenere traccia delle informazioni sullo stato per un flusso di file di dati. Gestione memoria imposta questo membro quando il sistema operativo memorizza prima nella cache il flusso di dati. Un valore NULL indica che il flusso di dati non è attualmente in memoria; questo valore, tuttavia, può cambiare in qualsiasi momento.

SharedCacheMap

Puntatore opaco a un oggetto mappa della cache, ovvero una struttura SHARED_CACHE_MAP , usata per tenere traccia delle visualizzazioni mappate al flusso di file di dati. Gestione cache imposta questo membro quando il sistema operativo memorizza prima nella cache il flusso. Un valore NULL indica che il flusso di dati non è attualmente memorizzato nella cache; questo valore, tuttavia, può cambiare in qualsiasi momento.

ImageSectionObject

Puntatore opaco a un oggetto sezione immagine, ovvero una struttura CONTROL_AREA , usata per tenere traccia delle informazioni sullo stato per un flusso di file eseguibile. Gestione memoria imposta questo membro ogni volta che viene creata una sezione dell'immagine eseguibile per il flusso. Un valore NULL indica che l'immagine eseguibile non è attualmente in memoria; questo valore, tuttavia, può cambiare in qualsiasi momento.

Commenti

La struttura SECTION_OBJECT_POINTERS collega un oggetto file all'oggetto sezione di un flusso di file. Ovvero, attraverso i suoi membri, la struttura SECTION_OBJECT_POINTERS connette un determinato oggetto file alle strutture di controllo della memoria virtuale che mantengono traccia del contenuto del flusso quando sono in memoria e consentono al sistema operativo di recuperare tali contenuti quando non sono.

Esiste una relazione uno-a-uno tra una struttura SECTION_OBJECT_POINTERS e un flusso di file. È possibile associare più oggetti file a un determinato flusso di file, ognuno che rappresenta un'istanza aperta del flusso. Tuttavia, una sola struttura SECTION_OBJECT_POINTERS può essere associata a un determinato flusso. Se sono presenti più oggetti file per un flusso, il membro SectionObjectPointer per tutti gli oggetti file deve puntare alla stessa struttura SECTION_OBJECT_POINTERS ,associata al flusso.

Per la prima richiesta di apertura del flusso di file, il file system o il driver di reindirizzamento deve:

  1. Allocare una struttura SECTION_OBJECT_POINTERS da un pool non a pagina.

  2. Inizializzare tutti i membri della struttura SECTION_OBJECT_POINTERS allocata in NULL.

  3. Impostare il membro SectionObjectPointer dell'oggetto file associato per puntare alla struttura di SECTION_OBJECT_POINTERS inizializzata.

Per le richieste aperte successive allo stesso flusso di file, il file system o il driver di reindirizzamento devono impostare il membro SectionObjectPointer dell'oggetto file associato per puntare alla struttura SECTION_OBJECT_POINTERS allocata in precedenza per il flusso di file.

Avviso

I driver di filtro del file system devono considerare i membri della struttura SECTION_OBJECT_POINTERS opaca perché il file system sottostante è responsabile della sincronizzazione dei membri e, pertanto, potrebbe modificare i valori in qualsiasi momento.

Un file è costituito da uno o più flussi, a seconda del file system. Per altre informazioni, vedere Flussi di file, contesti Stream e contesti di Per-Stream.

Requisiti

Requisito Valore
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)

Vedi anche

CcInitializeCacheMap

DEVICE_OBJECT

FILE_OBJECT

FOBX

FSRTL_ADVANCED_FCB_HEADER

IoGetDeviceObjectPointer

MmFlushImageSection

ObDereferenceObject