struktur SECTION_OBJECT_POINTERS (wdm.h)

Struktur SECTION_OBJECT_POINTERS , yang dialokasikan oleh sistem file atau driver pengalihan, digunakan oleh manajer memori dan manajer cache untuk menyimpan informasi terkait pemetaan file dan cache untuk aliran file.

Sintaks

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

Anggota

DataSectionObject

Penunjuk buram ke objek bagian data (yaitu, struktur CONTROL_AREA ) yang digunakan untuk melacak informasi status untuk aliran file data. Manajer memori mengatur anggota ini ketika sistem operasi pertama kali menyimpan aliran data. Nilai NULL menunjukkan bahwa aliran data saat ini tidak dalam memori; namun, nilai ini dapat berubah kapan saja.

SharedCacheMap

Penunjuk buram ke objek peta cache (yaitu, struktur SHARED_CACHE_MAP ) yang digunakan untuk melacak tampilan yang dipetakan ke aliran file data. Manajer cache mengatur anggota ini ketika sistem operasi pertama kali menyimpan aliran. Nilai NULL menunjukkan bahwa aliran data saat ini tidak di-cache; namun, nilai ini dapat berubah kapan saja.

ImageSectionObject

Penunjuk buram ke objek bagian gambar (yaitu, struktur CONTROL_AREA ) yang digunakan untuk melacak informasi status untuk aliran file yang dapat dieksekusi. Manajer memori mengatur anggota ini setiap kali bagian gambar yang dapat dieksekusi dibuat untuk aliran. Nilai NULL menunjukkan bahwa gambar yang dapat dieksekusi saat ini tidak dalam memori; namun, nilai ini dapat berubah kapan saja.

Keterangan

Struktur SECTION_OBJECT_POINTERS menautkan objek file ke objek bagian aliran file. Artinya, melalui anggotanya, struktur SECTION_OBJECT_POINTERS menghubungkan objek file tertentu ke struktur kontrol memori virtual yang melacak konten aliran ketika mereka berada dalam memori, dan memungkinkan sistem operasi untuk mengambil konten tersebut ketika tidak.

Ada hubungan satu-ke-satu antara struktur SECTION_OBJECT_POINTERS dan aliran file. Beberapa objek file dapat dikaitkan dengan aliran file tertentu, masing-masing mewakili instans aliran yang terbuka. Namun, hanya satu struktur SECTION_OBJECT_POINTERS yang dapat dikaitkan dengan aliran tertentu. Jika ada beberapa objek file untuk aliran, anggota SectionObjectPointer untuk semua objek file harus menunjuk ke struktur SECTION_OBJECT_POINTERS yang sama (yang terkait dengan aliran).

Untuk permintaan buka aliran file pertama, sistem file atau driver pengalihan harus:

  1. Alokasikan struktur SECTION_OBJECT_POINTERS dari kumpulan yang tidak disebarkan.

  2. Inisialisasi semua anggota struktur SECTION_OBJECT_POINTERS yang dialokasikan ke NULL.

  3. Atur anggota SectionObjectPointer dari objek file terkait untuk menunjuk ke struktur SECTION_OBJECT_POINTERS yang diinisialisasi.

Untuk permintaan terbuka berikutnya ke aliran file yang sama, sistem file atau driver pengalihan harus mengatur anggota SectionObjectPointer dari objek file terkait untuk menunjuk ke struktur SECTION_OBJECT_POINTERS yang dialokasikan sebelumnya untuk aliran file.

Peringatan

Driver filter sistem file harus memperlakukan anggota struktur SECTION_OBJECT_POINTERS buram karena sistem file yang mendasar bertanggung jawab atas sinkronisasi anggota dan, oleh karena itu, dapat mengubah nilai mereka kapan saja.

File terdiri dari satu atau beberapa aliran, tergantung pada sistem file. Untuk informasi selengkapnya, lihat Aliran File, Konteks Stream, dan Konteks Per-Stream.

Persyaratan

Persyaratan Nilai
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)

Lihat juga

CcInitializeCacheMap

DEVICE_OBJECT

FILE_OBJECT

FOBX

FSRTL_ADVANCED_FCB_HEADER

IoGetDeviceObjectPointer

MmFlushImageSection

ObDereferenceObject