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:
Allocare una struttura SECTION_OBJECT_POINTERS da un pool non a pagina.
Inizializzare tutti i membri della struttura SECTION_OBJECT_POINTERS allocata in NULL.
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) |