Fungsi FltEnumerateFilterInformation (fltkernel.h)

Rutinitas FltEnumerateFilterInformation menyediakan informasi tentang semua driver filter terdaftar (termasuk minifilter dan driver filter warisan) dalam sistem.

Sintaks

NTSTATUS FLTAPI FltEnumerateFilterInformation(
  [in]  ULONG                    Index,
  [in]  FILTER_INFORMATION_CLASS InformationClass,
  [out] PVOID                    Buffer,
  [in]  ULONG                    BufferSize,
  [out] PULONG                   BytesReturned
);

Parameter

[in] Index

Indeks berbasis nol dari driver filter yang informasinya diminta. Parameter ini mengidentifikasi filter dalam daftar global driver filter terdaftar. Jika daftar berisi driver filter n , nilai Indeks yang valid berkisar dari 0 hingga n-1. Jika nilai Indeks melebihi rentang ini, FltEnumerateFilterInformation mengembalikan STATUS_NO_MORE_ENTRIES.

[in] InformationClass

Jenis informasi yang diminta. Parameter ini dapat memiliki salah satu nilai berikut.

Nilai Makna
FilterFullInformation Buffer yang diacu oleh parameter Buffer menerima struktur FILTER_FULL_INFORMATION untuk driver minifilter (driver filter warisan diabaikan).
FilterAggregateBasicInformation Buffer yang ditunjukkan oleh parameter Buffer menerima struktur FILTER_AGGREGATE_BASIC_INFORMATION untuk driver filter minifilter atau warisan. Nilai InformationClass ini tersedia dimulai dengan Microsoft Windows Server 2003 SP1 dan Windows XP SP2 dengan rollup manajer filter. Untuk informasi selengkapnya tentang paket rollup manajer filter untuk Windows XP SP2, lihat artikel 914882, "Paket rollup manajer filter untuk Windows XP SP2," di Pangkalan Pengetahuan Microsoft.
FilterAggregateStandardInformation Buffer yang ditujukkan oleh parameter Buffer menerima struktur FILTER_AGGREGATE_STANDARD_INFORMATION untuk driver filter minifilter atau warisan. Nilai InformationClass ini tersedia dimulai dengan Windows Vista.

[out] Buffer

Arahkan ke buffer yang dialokasikan penelepon yang menerima informasi yang diminta. Jenis informasi yang dikembalikan dalam buffer ditentukan oleh parameter InformationClass .

[in] BufferSize

Ukuran, dalam byte, dari buffer yang dirujuk parameter Buffer . Pemanggil harus mengatur parameter ini sesuai dengan nilai InformationClass yang diberikan.

[out] BytesReturned

Penunjuk ke variabel yang dialokasikan pemanggil yang menerima jumlah byte yang dikembalikan dalam buffer yang dituju Buffer . Jika nilai input BufferSize terlalu kecil, FltEnumerateFilterInformation mengembalikan STATUS_BUFFER_TOO_SMALL dan mengatur variabel ini ke jumlah byte yang diperlukan untuk menyimpan informasi yang diminta. Parameter ini diperlukan dan tidak boleh NULL.

Nilai kembali

FltEnumerateFilterInformation mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai, seperti salah satu hal berikut ini:

Menampilkan kode Deskripsi
STATUS_BUFFER_TOO_SMALL
Buffer yang dirujuk parameter Buffer tidak cukup besar untuk menyimpan informasi yang diminta. Ini adalah kode kesalahan.
STATUS_FLT_DELETING_OBJECT
Driver minifilter yang cocok ditemukan, tetapi sedang dirobohkan. Ini adalah kode kesalahan.
STATUS_INVALID_PARAMETER
Nilai yang tidak valid ditentukan untuk parameter InformationClass . Misalnya, jika FilterAggregateStandardInformation ditentukan pada sistem operasi sebelum Windows Vista, rutinitas akan mengembalikan STATUS_INVALID_PARAMETER. Ini adalah kode kesalahan.
STATUS_NO_MORE_ENTRIES
Tidak ada entri lagi dalam daftar global driver filter terdaftar. (Nilai parameter Indeks lebih besar dari atau sama dengan jumlah driver filter.) Ini adalah kode peringatan.

Keterangan

Dimulai dengan Microsoft Windows Server 2003 SP1 dan Windows XP SP2 dengan rollup manajer filter, FltEnumerateFilterInformation menyediakan informasi tentang driver filter sistem file (juga disebut "filter warisan") serta driver minifilter. Pada versi Windows yang lebih lama, FltEnumerateFilterInformation hanya menyediakan informasi tentang driver minifilter.

Pseudocode berikut menghitung informasi filter untuk semua driver filter terdaftar.

#define InfoClass FilterAggregateStandardInformation   // Assumes Windows Vista or later operating system.

int i = 0;
while ( FltEnumerateFilterInformation(i, InfoClass, ...) != STATUS_NO_MORE_ENTRIES )
{
 Process acquired filter driver information returned by the Buffer parameter of FltEnumerateFilterInformation, if applicable.
 i++;
}

FltEnumerateFilterInformation mengembalikan informasi tentang driver filter terdaftar, melalui parameter Buffer , dalam urutan penurunan jarak dari sistem file yang mendasar. Misalnya, asumsikan bahwa ada driver filter n yang terpasang di atas sistem file yang mendasar. Informasi tentang driver filter yang terlampir paling jauh dari sistem file dikembalikan terlebih dahulu (dengan nilai parameter Indeks 0). Informasi tentang driver filter terlampir terjauh berikutnya dikembalikan kedua (dengan nilai parameter Indeks 1), dan seterusnya. Akhirnya, informasi tentang driver filter yang paling dekat dengan sistem file dikembalikan terakhir (dengan nilai parameter Indeksn-1).

Catatan Karena driver filter dapat mendaftar kapan saja, ada kemungkinan bahwa dua panggilan ke FltEnumerateFilterInformation dengan Indeks yang sama mungkin tidak mengembalikan hasil yang sama.
 
Untuk menghitung semua driver minifilter terdaftar, panggil FltEnumerateFilters.

Untuk menghitung semua driver filter warisan terdaftar, panggil IoEnumerateRegisteredFiltersList.

Untuk menghitung semua instans driver minifilter tertentu, panggil FltEnumerateInstanceInformationByFilter.

Untuk menghitung semua instans driver minifilter pada volume tertentu, panggil FltEnumerateInstanceInformationByVolume.

Untuk mencantumkan informasi volume untuk semua volume yang diketahui oleh Filter Manager, panggil FltEnumerateVolumeInformation.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header fltkernel.h (termasuk FltKernel.h)
Pustaka FltMgr.lib
IRQL <= APC_LEVEL

Lihat juga

FILTER_AGGREGATE_BASIC_INFORMATION

FILTER_AGGREGATE_STANDARD_INFORMATION

FILTER_FULL_INFORMATION

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumeInformation

FltGetFilterInformation

IoEnumerateRegisteredFiltersList