Bagikan melalui


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

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_ALLOCATE_CALLBACK

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK