struktur FLT_REGISTRATION (fltkernel.h)

Struktur FLT_REGISTRATION diteruskan sebagai parameter ke FltRegisterFilter.

Sintaks

typedef struct _FLT_REGISTRATION {
  USHORT                                      Size;
  USHORT                                      Version;
  FLT_REGISTRATION_FLAGS                      Flags;
  const FLT_CONTEXT_REGISTRATION              *ContextRegistration;
  const FLT_OPERATION_REGISTRATION            *OperationRegistration;
  PFLT_FILTER_UNLOAD_CALLBACK                 FilterUnloadCallback;
  PFLT_INSTANCE_SETUP_CALLBACK                InstanceSetupCallback;
  PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK       InstanceQueryTeardownCallback;
  PFLT_INSTANCE_TEARDOWN_CALLBACK             InstanceTeardownStartCallback;
  PFLT_INSTANCE_TEARDOWN_CALLBACK             InstanceTeardownCompleteCallback;
  PFLT_GENERATE_FILE_NAME                     GenerateFileNameCallback;
  PFLT_NORMALIZE_NAME_COMPONENT               NormalizeNameComponentCallback;
  PFLT_NORMALIZE_CONTEXT_CLEANUP              NormalizeContextCleanupCallback;
  PFLT_TRANSACTION_NOTIFICATION_CALLBACK      TransactionNotificationCallback;
  PFLT_NORMALIZE_NAME_COMPONENT_EX            NormalizeNameComponentExCallback;
  PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK SectionNotificationCallback;
} FLT_REGISTRATION, *PFLT_REGISTRATION;

Anggota

Size

Ukuran, dalam byte, dari struktur FLT_REGISTRATION. Driver minifilter harus mengatur anggota ini ke sizeof(FLT_REGISTRATION).

Version

Tingkat revisi struktur FLT_REGISTRATION. Driver minifilter harus mengatur anggota ini ke FLT_REGISTRATION_VERSION.

Flags

Bitmask bendera pendaftaran minifilter. Anggota ini bisa null atau kombinasi dari berikut ini.

Nilai Makna
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
Jika bendera ini diatur, minifilter tidak dibongkar sebagai respons terhadap permintaan penghentian layanan, bahkan jika anggota FilterUnloadCallback bukan NULL.
FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS
Jika bendera ini diatur, minifilter akan mendukung pemfilteran permintaan alur dan mailslot bernama. Bendera ini diperkenalkan di Windows 8.
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
Jika bendera ini diatur, minifilter akan mendukung pemasangan ke volume akses langsung (DAX). Ini akan menunjukkan kepada Filter Manager bahwa minifilter akan memfilter volume DAX. Bendera ini diperkenalkan di Windows 10, versi 1607.

ContextRegistration

Array panjang variabel dari struktur FLT_CONTEXT_REGISTRATION , satu untuk setiap jenis konteks yang digunakan minifilter. Elemen terakhir dalam array harus {FLT_CONTEXT_END}. Anggota ini bersifat opsional dan dapat berupa NULL.

OperationRegistration

Array panjang variabel struktur FLT_OPERATION_REGISTRATION , satu untuk setiap jenis I/O yang minifilter mendaftarkan rutinitas panggilan balik praoperasi (PFLT_PRE_OPERATION_CALLBACK) dan pascaoperasi (PFLT_POST_OPERATION_CALLBACK). Elemen terakhir dalam array harus {IRP_MJ_OPERATION_END}. Anggota ini bersifat opsional dan dapat berupa NULL.

FilterUnloadCallback

Penunjuk ke rutinitas jenis PFLT_FILTER_UNLOAD_CALLBACK untuk didaftarkan sebagai rutinitas FilterUnloadCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL. Perhatikan bahwa jika NULL ditentukan untuk rutinitas ini, filter tidak pernah dapat dibongkar.

InstanceSetupCallback

Pointer ke rutinitas jenis PFLT_INSTANCE_SETUP_CALLBACK untuk didaftarkan sebagai rutinitas InstanceSetupCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL. Perhatikan bahwa jika NULL ditentukan untuk rutinitas ini, lampiran selalu dibuat.

InstanceQueryTeardownCallback

Penunjuk ke rutinitas jenis PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK untuk didaftarkan sebagai rutinitas InstanceQueryTeardownCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL. Perhatikan bahwa jika NULL ditentukan untuk rutinitas ini, maka instans tidak akan pernah dilepas secara manual.

InstanceTeardownStartCallback

Penunjuk ke rutinitas jenis PFLT_INSTANCE_TEARDOWN_CALLBACK untuk didaftarkan sebagai rutinitas InstanceTeardownStartCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL.

InstanceTeardownCompleteCallback

Penunjuk ke rutinitas jenis PFLT_INSTANCE_TEARDOWN_CALLBACK untuk didaftarkan sebagai rutinitas InstanceTeardownCompleteCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL.

GenerateFileNameCallback

Penunjuk ke rutinitas jenis PFLT_GENERATE_FILE_NAME untuk didaftarkan sebagai rutinitas GenerateFileNameCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL.

NormalizeNameComponentCallback

Penunjuk ke rutinitas jenis PFLT_NORMALIZE_NAME_COMPONENT untuk didaftarkan sebagai rutinitas NormalizeNameComponentCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL.

NormalizeContextCleanupCallback

Penunjuk ke rutinitas jenis PFLT_NORMALIZE_CONTEXT_CLEANUP untuk didaftarkan sebagai rutinitas NormalizeContextCleanupCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL.

TransactionNotificationCallback

(Hanya Windows Vista dan yang lebih baru.) Penunjuk ke rutinitas jenis PFLT_TRANSACTION_NOTIFICATION_CALLBACK untuk didaftarkan sebagai rutinitas TransactionNotificationCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL.

NormalizeNameComponentExCallback

(Hanya Windows Vista dan yang lebih baru.) Penunjuk ke rutinitas jenis PFLT_NORMALIZE_NAME_COMPONENT_EX untuk didaftarkan sebagai rutinitas NormalizeNameComponentExCallback driver minifilter. Anggota ini bersifat opsional dan dapat berupa NULL.

Dibandingkan dengan rutinitas panggilan balik NormalizeNameComponentCallback , rutinitas panggilan balik NormalizeNameComponentExCallback mendukung parameter objek file tambahan, FileObject (dari jenis PFILE_OBJECT). Driver minifilter dapat menggunakan parameter ini untuk memperoleh informasi tambahan, seperti yang disediakan oleh struktur TXN_PARAMETER_BLOCK .

Driver minifilter dapat secara bersamaan mengatur anggota NormalizeNameComponentCallback dan NormalizeNameComponentExCallback ke NULL; namun, driver minifilter penyedia nama harus mendaftarkan rutinitas panggilan balik NormalizeNameComponentCallback atau NormalizeNameComponentExCallback , atau keduanya. Misalnya, driver minifilter penyedia nama yang tidak menggunakan parameter FileObject tambahan dapat mengatur anggota NormalizeNameComponentExCallback ke NULL dan hanya menyediakan rutinitas panggilan balik NormalizeNameComponentCallback .

Driver minifilter dapat menyediakan panggilan balik NormalizeNameComponentCallback dan callback NormalizeNameComponentExCallback . Dalam hal ini, dimulai dengan Windows Vista, manajer filter hanya akan menggunakan panggilan balik NormalizeNameComponentExCallback ; untuk sistem operasi Windows sebelum Windows Vista, manajer filter hanya akan menggunakan panggilan balik NormalizeNameComponentCallback . Ini memungkinkan biner driver minifilter yang sama untuk berjalan di bawah semua versi sistem operasi.

SectionNotificationCallback

Arahkan ke rutinitas jenis PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK untuk didaftarkan sebagai rutinitas SectionNotificationCallback minifilter. Anggota ini bersifat opsional dan dapat berupa NULL. Panggilan balik ini dipanggil untuk pemberitahuan kegagalan I/O untuk bagian yang dibuat dengan FltCreateSectionForDatascan.

Keterangan

Struktur FLT_REGISTRATION digunakan untuk memberikan informasi tentang minifilter sistem file, seperti rutinitas filterUnloadCallback (PFLT_FILTER_UNLOAD_CALLBACK) dan praoperasi (PFLT_PRE_OPERATION_CALLBACK) dan rutinitas panggilan balik pascaoperasi (PFLT_POST_OPERATION_CALLBACK), ke manajer filter. Minifilter meneruskan pointer ke struktur ini sebagai parameter Pendaftaran ke FltRegisterFilter.

Persyaratan

Persyaratan Nilai
Header fltkernel.h (termasuk Fltkernel.h)

Lihat juga

FLT_CONTEXT_REGISTRATION

FLT_OPERATION_REGISTRATION

FltRegisterFilter

PFLT_FILTER_UNLOAD_CALLBACK

PFLT_GENERATE_FILE_NAME

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT

PFLT_NORMALIZE_NAME_COMPONENT_EX

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK

PFLT_TRANSACTION_NOTIFICATION_CALLBACK