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 |
---|---|
|
Buffer yang dirujuk parameter Buffer tidak cukup besar untuk menyimpan informasi yang diminta. Ini adalah kode kesalahan. |
|
Driver minifilter yang cocok ditemukan, tetapi sedang dirobohkan. Ini adalah kode kesalahan. |
|
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. |
|
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).
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
FltEnumerateInstanceInformationByFilter