struktur FLT_CONTEXT_REGISTRATION (fltkernel.h)
Struktur FLT_CONTEXT_REGISTRATION digunakan untuk mendaftarkan jenis konteks.
Sintaks
typedef struct _FLT_CONTEXT_REGISTRATION {
FLT_CONTEXT_TYPE ContextType;
FLT_CONTEXT_REGISTRATION_FLAGS Flags;
PFLT_CONTEXT_CLEANUP_CALLBACK ContextCleanupCallback;
SIZE_T Size;
ULONG PoolTag;
PFLT_CONTEXT_ALLOCATE_CALLBACK ContextAllocateCallback;
PFLT_CONTEXT_FREE_CALLBACK ContextFreeCallback;
PVOID Reserved1;
} FLT_CONTEXT_REGISTRATION, *PFLT_CONTEXT_REGISTRATION;
Anggota
ContextType
Jenis konteks. Anggota ini diperlukan dan harus menjadi salah satu nilai berikut:
FLT_FILE_CONTEXT (Windows Vista dan yang lebih baru saja.)
FLT_INSTANCE_CONTEXT
FLT_STREAM_CONTEXT
FLT_STREAMHANDLE_CONTEXT
FLT_SECTION_CONTEXT (hanya Windows 8 dan yang lebih baru.)
FLT_TRANSACTION_CONTEXT (Windows Vista dan yang lebih baru saja.)
FLT_VOLUME_CONTEXT
Flags
Bitmask bendera yang menentukan bagaimana manajer filter mengalokasikan konteks baru dari daftar lookaside konteks ukuran tetap. Anggota ini bisa nol atau nilai berikut.
Bendera | Makna |
---|---|
FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH | Jika minifilter menggunakan konteks ukuran tetap dan bendera ini ditentukan, manajer filter mengalokasikan konteks dari daftar lookaside jika ukuran konteks dalam daftar lookaside lebih besar dari atau sama dengan ukuran yang diminta. Jika tidak, manajer filter mengalokasikan konteks dari daftar lookaside hanya jika ukuran konteks dalam daftar lookaside sama dengan ukuran yang diminta. |
ContextCleanupCallback
Penunjuk ke rutinitas jenis PFLT_CONTEXT_CLEANUP_CALLBACK ContextCleanupCallback yang ditentukan minifilter. Manajer filter memanggil rutinitas ini segera sebelum menghapus konteks. Jika minifilter tidak memiliki memori atau pointer untuk dibersihkan di dalam konteks, anggota ini bersifat opsional dan dapat berupa NULL.
Size
Ukuran, dalam byte, dari bagian konteks yang ditentukan minifilter, jika minifilter menggunakan konteks ukuran tetap. Nol adalah nilai ukuran yang valid. Jika minifilter menggunakan konteks ukuran variabel, anggota ini diperlukan dan harus diatur ke FLT_VARIABLE_SIZED_CONTEXTS.
PoolTag
Nilai tag kumpulan yang akan digunakan untuk konteks. Tag ini, yang ditentukan sebagai string satu hingga empat karakter ASCII 7-bit, muncul di crash dump sistem yang terjadi. Jika anggota ContextAllocateCallback adalah NULL, anggota ini diperlukan dan tidak boleh nol.
ContextAllocateCallback
Penunjuk ke rutinitas ContextAllocateCallback yang ditentukan minifilter dari jenis PFLT_CONTEXT_ALLOCATE_CALLBACK. Anggota ini bersifat opsional dan dapat berupa NULL. Jika bukan NULL, anggota Ukuran dan PoolTag diabaikan.
ContextFreeCallback
Penunjuk ke rutinitas jenis contextFreeCallback yang ditentukan minifilter PFLT_CONTEXT_FREE_CALLBACK. Anggota ini bersifat opsional dan dapat berupa NULL. Jika bukan NULL, anggota Ukuran dan PoolTag diabaikan.
Reserved1
Dicadangkan untuk penggunaan sistem. Minifilter harus mengatur anggota ini ke NULL.
Keterangan
Ketika minifilter memanggil FltRegisterFilter dari rutinitas DriverEntry-nya , ia harus mendaftarkan setiap jenis konteks yang digunakannya.
Untuk mendaftarkan jenis konteks ini, minifilter membuat array panjang variabel dari struktur FLT_CONTEXT_REGISTRATION dan menyimpan penunjuk ke array dalam anggota ContextRegistration dari struktur FLT_REGISTRATION yang diteruskan minifilter sebagai parameter PendaftaranFltRegisterFilter. Elemen terakhir dari array ini harus {FLT_CONTEXT_END}.
Untuk setiap jenis konteks yang digunakan minifilter, minifilter harus menyediakan setidaknya satu struktur FLT_CONTEXT_REGISTRATION, sesuai dengan aturan berikut:
- Jika minifilter memasok struktur FLT_CONTEXT_REGISTRATION dengan anggota ContextAllocateCallbacknon-NULL, itu tidak dapat menyediakan struktur FLT_CONTEXT_REGISTRATION tambahan untuk jenis konteks tersebut.
- Jika minifilter memasok dua atau lebih struktur FLT_CONTEXT_REGISTRATION yang identik, hanya yang pertama yang akan digunakan. Yang lain akan diabaikan.
- Hanya satu struktur FLT_CONTEXT_REGISTRATION dengan anggota Ukuran FLT_VARIABLE_SIZED_CONTEXTS yang dapat disediakan untuk setiap jenis konteks.
- Tidak lebih dari tiga struktur FLT_CONTEXT_REGISTRATION dengan anggota Ukuran selain FLT_VARIABLE_SIZED_CONTEXTS dapat disediakan untuk setiap jenis konteks.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | fltkernel.h (termasuk Fltkernel.h) |
Lihat juga
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