struktur FSRTL_PER_FILE_CONTEXT (ntifs.h)
Driver filter sistem file warisan dapat menggunakan struktur FSRTL_PER_FILE_CONTEXT untuk mengaitkan informasi konteks khusus driver ke file terbuka.
Sintaks
typedef struct _FSRTL_PER_FILE_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT;
Anggota
Links
Tautan untuk struktur ini dalam daftar semua struktur konteks per file yang terkait dengan file yang sama. FsRtlInsertPerFileContext menyisipkan anggota ini ke dalam daftar semua struktur konteks per file untuk file.
OwnerId
Penunjuk ke buffer yang dialokasikan filter-driver yang secara unik mengidentifikasi pemilik struktur konteks per file. Format variabel ini khusus untuk filter-driver. Driver filter harus mengatur anggota ini ke nilai non-NULL .
InstanceId
Penunjuk ke buffer yang dialokasikan filter-driver yang dapat digunakan untuk membedakan antara struktur konteks per file yang dibuat oleh driver filter yang sama. Format variabel ini khusus untuk filter-driver. Driver filter dapat mengatur anggota ini ke NULL.
FreeCallback
Penunjuk ke rutinitas panggilan balik yang membebaskan struktur konteks per file. Driver filter harus mengatur anggota ini ke nilai non-NULL .
Keterangan
Untuk mengaitkan informasi konteks dengan file, driver filter warisan terlebih dahulu mengalokasikan struktur FSRTL_PER_FILE_CONTEXT dan menginisialisasinya menggunakan FsRtlInsertPerFileContext. Driver kemudian menggunakan FsRtlInsertPerFileContext untuk mengaitkan objek FSRTL_PER_FILE_CONTEXT tersebut dengan file. Ketika sistem merobek objek konteks file untuk file, sistem memanggil FsRtlTeardownPerFileContexts yang memanggil rutinitas FreeCallback yang ditentukan dalam objek FSRTL_PER_FILE_CONTEXT . Panggilan balik tersebut harus membebaskan objek konteks khusus driver.
Penulis filter harus memilih nilai OwnerID yang bermakna dan nyaman, seperti alamat objek driver atau objek perangkat.
Penulis filter harus memilih nilai InstanceID yang bermakna dan nyaman, seperti alamat objek konteks file untuk file. Gunakan makro FsRtlGetPerFileContextPointer untuk mengambil alamat tersebut dari objek file.
Struktur FSRTL_PER_FILE_CONTEXT dapat digunakan apa adanya, atau disematkan dalam struktur konteks per file yang ditentukan driver.
Struktur FSRTL_PER_FILE_CONTEXT dapat dialokasikan dari kumpulan halaman atau tidak berpakaian.
Makro FsRtlInitPerFileContext menginisialisasi struktur FSRTL_PER_FILE_CONTEXT .
Parameter
FileContext
FSRTL_PER_FILE_CONTEXT
Objek FSRTL_PER_FILE_CONTEXT yang akan diinisialisasi.
OwnerId
PVOID
Penunjuk ke variabel filter yang dialokasikan driver yang secara unik mengidentifikasi pemilik struktur konteks per file. Formatnya adalah filter khusus driver. Parameter ini harus memiliki nilai non-NULL .
InstanceId
PVOID
Penunjuk ke variabel filter yang dialokasikan driver yang secara unik mengidentifikasi pemilik struktur konteks per file. Formatnya adalah filter khusus driver. Parameter ini harus memiliki nilai non-NULL .
FreeCallback
PFREE_FUNCTION
Penunjuk ke rutinitas panggilan balik yang membebaskan struktur konteks per file.
Nilai kembali
VOID
Tidak ada.
Makro ini harus digunakan sebelum memanggil FsRtlInsertPerFileContext.
Penulis filter harus memilih nilai OwnerID yang bermakna dan nyaman, seperti alamat objek driver atau objek perangkat.
Penulis filter harus menggunakan nilai InstanceID yang bermakna dan nyaman, seperti alamat objek konteks file untuk file. Gunakan makro FsRtlGetPerFileContextPointer untuk mengambil alamat tersebut dari objek file.
Untuk informasi selengkapnya tentang cara menggunakan dan membuat objek konteks, lihat Melacak konteks Per-File dalam Driver Filter Sistem File Warisan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia dimulai denganWindows Vista. |
Header | ntifs.h (termasuk Fltkernel.h, Ntifs.h) |
Lihat juga
Melacak Konteks Per-File dalam Driver Filter Sistem File Warisan
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk