struttura SECTION_OBJECT_POINTERS (wdm.h)
La struttura SECTION_OBJECT_POINTERS, allocata da un file system o da un driver di reindirizzamento, viene usata dalla gestione della 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;
Membri
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
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 di CONTROL_AREA) usata per tenere traccia delle informazioni sullo stato per un flusso di file eseguibili. 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.
Osservazioni
La struttura SECTION_OBJECT_POINTERS collega un oggetto file all'oggetto sezione di un flusso di file. Ovvero, attraverso i relativi membri, la struttura SECTION_OBJECT_POINTERS connette un particolare oggetto file alle strutture di controllo della memoria virtuale che tengono traccia del contenuto del flusso quando sono in memoria e consentono al sistema operativo di recuperare tali contenuti quando non lo 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 flusso di file specifico, ognuno dei quali rappresenta un'istanza aperta del flusso. Tuttavia, solo una struttura SECTION_OBJECT_POINTERS può essere associata a un determinato flusso. Se sono presenti più oggetti file per un flusso, il SectionObjectPointer membro 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 del redirector devono:
Allocare una struttura SECTION_OBJECT_POINTERS da un pool non di paging.
Inizializzare tutti i membri della struttura SECTION_OBJECT_POINTERS allocata per NULL.
Impostare il SectionObjectPointer membro dell'oggetto file associato in modo che punti alla struttura SECTION_OBJECT_POINTERS inizializzata.
Per le successive richieste aperte allo stesso flusso di file, il file system o il driver del redirector devono impostare il SectionObjectPointer membro dell'oggetto file associato in modo che punti alla struttura SECTION_OBJECT_POINTERS precedentemente allocata per il flusso di file.
Avvertimento
I driver di filtro del file system devono considerare i membri della struttura di SECTION_OBJECT_POINTERS come opachi 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 di flusso e contesti di Per-Stream.
Fabbisogno
Requisito | Valore |
---|---|
intestazione |
wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h) |