Fungsi IoEnumerateRegisteredFiltersList (ntifs.h)
Rutinitas IoEnumerateRegisteredFiltersList menghitung driver filter sistem file yang telah terdaftar di sistem.
Sintaks
NTSTATUS IoEnumerateRegisteredFiltersList(
[out] PDRIVER_OBJECT *DriverObjectList,
[in] ULONG DriverObjectListSize,
[out] PULONG ActualNumberDriverObjects
);
Parameter
[out] DriverObjectList
Penunjuk ke array yang dialokasikan penelepon yang menerima penunjuk objek driver. Parameter ini bersifat opsional dan dapat berupa NULL. (Lihat bagian Keterangan berikut.)
[in] DriverObjectListSize
Ukuran, dalam byte, dari array DriverObjectList . Bisa nol. (Lihat bagian Keterangan berikut.)
[out] ActualNumberDriverObjects
Jumlah aktual objek driver yang ditemukan. Perhatikan bahwa jika array di DriverObjectList terlalu kecil, jumlah penunjuk objek driver yang disalin ke dalam array akan kurang dari ActualNumberDriverObjects.
Nilai kembali
IoEnumerateRegisteredFiltersList dapat mengembalikan salah satu hal berikut:
Menampilkan kode | Deskripsi |
---|---|
STATUS_SUCCESS | Panggilan ke IoEnumerateRegisteredFiltersList berhasil. |
STATUS_BUFFER_TOO_SMALL | Array di DriverObjectList terlalu kecil untuk menyimpan seluruh daftar objek driver. Dalam hal ini, IoEnumerateRegisteredFiltersList menyalin penunjuk objek driver sebanyak mungkin ke dalam array. |
Keterangan
Driver filter sistem file memanggil IoEnumerateRegisteredFiltersList untuk mendapatkan array penunjuk ke objek driver untuk semua driver filter sistem file yang telah disebut IoRegisterFsRegistrationChange.
Driver filter dijumlahkan dalam urutan penurunan jarak dari sistem file dasar. Elemen pertama (indeks nol) dalam array DriverObjectList mewakili filter yang terlampir paling jauh dari sistem file. Entri kedua adalah untuk filter terjauh berikutnya, dan sebagainya. Entri terakhir dalam array adalah untuk filter yang paling dekat dengan sistem file dasar.
IoEnumerateRegisteredFiltersList hanya menghitung driver filter warisan; itu tidak menghitung minifilter. Untuk menghitung filter minifilter dan warisan, atau hanya minifilter, panggil FltEnumerateFilterInformation.
Driver filter biasanya memanggil IoEnumerateRegisteredFiltersList dua kali: sekali untuk mendapatkan jumlah objek driver dalam daftar, dan sekali untuk mendapatkan daftar objek driver itu sendiri. Pada panggilan pertama, pemanggil harus mengatur parameter DriverObjectList ke NULL dan DriverObjectListSize ke nol. Dalam panggilan kedua, DriverObjectList harus berisi penunjuk ke array penunjuk berukuran tepat, dan DriverObjectListSize harus berisi ukuran, dalam byte, dari array tersebut.
IoEnumerateRegisteredFiltersList menambah jumlah referensi pada setiap objek driver dalam daftar yang ditunjukkan oleh DriverObjectList. Dengan demikian setiap panggilan yang berhasil ke IoEnumerateRegisteredFiltersList harus dicocokkan dengan panggilan berikutnya ke ObDereferenceObject untuk setiap objek driver dalam daftar. Kegagalan untuk melakukannya mencegah sistem membebaskan atau menghapus objek driver ini karena jumlah referensi yang luar biasa.
Minifilter harus memanggil FltEnumerateFilterInformation atau FltEnumerateFilters alih-alih IoEnumerateRegisteredFiltersList.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Pembaruan Rollup untuk Windows 2000 SP4; Windows Server 2003 SP1 |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
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