SECTION_OBJECT_POINTERS-Struktur (wdm.h)

Die SECTION_OBJECT_POINTERS Struktur, die von einem Dateisystem oder einem Umleitungstreiber zugeordnet wird, wird vom Speicher- und Cache-Manager verwendet, um Dateizuordnungs- und Cacheinformationen für einen Dateistream zu speichern.

Syntax

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

Member

DataSectionObject

Undurchsichtiger Zeiger auf ein Datenabschnittsobjekt (d. h. eine CONTROL_AREA-Struktur ), das zum Nachverfolgen von Zustandsinformationen für einen Datendateidatenstrom verwendet wird. Der Speicher-Manager legt diesen Member fest, wenn das Betriebssystem den Datenstrom zuerst zwischenspeichert. Ein NULL-Wert gibt an, dass sich der Datenstrom derzeit nicht im Arbeitsspeicher befindet. Dieser Wert kann sich jedoch jederzeit ändern.

SharedCacheMap

Undurchsichtiger Zeiger auf ein Cachezuordnungsobjekt (d. h. eine SHARED_CACHE_MAP-Struktur ), das zum Nachverfolgen von Ansichten verwendet wird, die dem Datendateidatenstrom zugeordnet sind. Der Cache-Manager legt diesen Member fest, wenn das Betriebssystem den Stream zuerst zwischenspeichert. Ein NULL-Wert gibt an, dass der Datenstrom derzeit nicht zwischengespeichert wird. Dieser Wert kann sich jedoch jederzeit ändern.

ImageSectionObject

Undurchsichtiger Zeiger auf ein Bildabschnittsobjekt (d. h. eine CONTROL_AREA-Struktur ), das zum Nachverfolgen von Zustandsinformationen für einen ausführbaren Dateistream verwendet wird. Der Speicher-Manager legt diesen Member fest, wenn ein ausführbarer Imageabschnitt für den Stream erstellt wird. Ein NULL-Wert gibt an, dass sich das ausführbare Image derzeit nicht im Arbeitsspeicher befindet. Dieser Wert kann sich jedoch jederzeit ändern.

Hinweise

Die SECTION_OBJECT_POINTERS-Struktur verknüpft ein Dateiobjekt mit dem Abschnittsobjekt eines Dateistreams. Das heißt, die SECTION_OBJECT_POINTERS-Struktur verbindet ein bestimmtes Dateiobjekt mit virtuellen Speichersteuerungsstrukturen, die den Inhalt des Datenstroms nachverfolgen, wenn sie sich im Arbeitsspeicher befinden, und dem Betriebssystem ermöglichen, diese Inhalte abzurufen, wenn dies nicht der Fall ist.

Zwischen einer SECTION_OBJECT_POINTERS-Struktur und einem Dateidatenstrom besteht eine 1:1-Beziehung. Einem bestimmten Dateistream können mehrere Dateiobjekte zugeordnet werden, die jeweils eine offene instance des Datenstroms darstellen. Allerdings kann nur eine SECTION_OBJECT_POINTERS Struktur einem bestimmten Stream zugeordnet werden. Wenn mehrere Dateiobjekte für einen Stream vorhanden sind, muss das SectionObjectPointer-Element für alle Dateiobjekte auf dieselbe SECTION_OBJECT_POINTERS -Struktur verweisen (die dem Stream zugeordnet ist).

Für die erste Offene Anforderung des Dateistreams muss das Dateisystem oder der Umleitungstreiber Folgendes ausführen:

  1. Ordnen Sie eine SECTION_OBJECT_POINTERS-Struktur aus einem nicht auslagerten Pool zu.

  2. Initialisieren Sie alle Member der zugeordneten SECTION_OBJECT_POINTERS-Struktur auf NULL.

  3. Legen Sie das SectionObjectPointer-Element des zugeordneten Dateiobjekts so fest, dass er auf die initialisierte SECTION_OBJECT_POINTERS-Struktur verweist.

Für nachfolgende offene Anforderungen an denselben Dateistream muss das Dateisystem oder der Umleitungstreiber festlegen, dass das SectionObjectPointer-Element des zugeordneten Dateiobjekts auf die zuvor zugewiesene SECTION_OBJECT_POINTERS Struktur für den Dateidatenstrom verweist.

Warnung

Dateisystemfiltertreiber müssen die Elemente der SECTION_OBJECT_POINTERS-Struktur als undurchsichtig behandeln, da das zugrunde liegende Dateisystem für die Synchronisierung der Member verantwortlich ist und daher ihre Werte jederzeit ändern kann.

Eine Datei besteht je nach Dateisystem aus einem oder mehreren Streams. Weitere Informationen finden Sie unter Dateistreams, Stream Kontexte und Per-Stream Kontexte.

Anforderungen

Anforderung Wert
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)

Weitere Informationen

CcInitializeCacheMap

DEVICE_OBJECT

FILE_OBJECT

FOBX

FSRTL_ADVANCED_FCB_HEADER

IoGetDeviceObjectPointer

MmFlushImageSection

ObDereferenceObject