Fungsi FltEnumerateInstances (fltkernel.h)

FltEnumerateInstances rutin menghitung instans driver minifilter untuk driver atau volume minifilter tertentu.

Sintaks

NTSTATUS FLTAPI FltEnumerateInstances(
  [in, optional] PFLT_VOLUME   Volume,
  [in, optional] PFLT_FILTER   Filter,
  [out]          PFLT_INSTANCE *InstanceList,
  [in]           ULONG         InstanceListSize,
  [out]          PULONG        NumberInstancesReturned
);

Parameter

[in, optional] Volume

Penunjuk buram untuk volume yang ingin digunakan pemanggil untuk menghitung instans driver minifilter. Jika NULL, instans untuk semua volume dijumlahkan. Harus non-NULL jika FilterNULL.

[in, optional] Filter

Penunjuk filter buram untuk driver minifilter yang instansnya akan dijumlahkan. Jika NULL, instans untuk semua driver minifilter dijumlahkan. Harus non-NULL jika VolumeNULL.

[out] InstanceList

Penunjuk ke buffer yang dialokasikan penelepon yang menerima array pointer instans buram.

[in] InstanceListSize

Jumlah pointer instans buram yang dapat dipegang oleh buffer yang dapat dipegang InstanceList .

[out] NumberInstancesReturned

Penunjuk ke variabel yang dialokasikan penelepon yang menerima jumlah pointer instans buram yang dikembalikan dalam array yang dituju InstanceList . Jika InstanceListSize terlalu kecil, FltEnumerateInstances mengembalikan STATUS_BUFFER_TOO_SMALL dan mengatur NumberInstancesReturned untuk menunjuk ke jumlah instans yang cocok yang ditemukan.

Nilai kembali

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

Menampilkan kode Deskripsi
STATUS_BUFFER_TOO_SMALL
Buffer yang dituju parameter InstanceList tidak cukup besar untuk menyimpan informasi yang diminta. Ini adalah kode kesalahan.
STATUS_INVALID_PARAMETER
Volume dan Filter tidak boleh null. Ini adalah kode kesalahan.

Keterangan

Karena instans driver minifilter dalam daftar instans dapat berubah kapan saja, dua panggilan ke FltEnumerateInstances dengan nilai Volume dan Filter yang sama tidak dijamin untuk mengembalikan hasil yang sama.

FltEnumerateInstances menambahkan referensi rundown ke setiap pointer instans buram yang dikembalikan dalam array yang ditunjuk parameter InstanceList . Ketika pointer ini tidak lagi diperlukan, pemanggil harus melepaskannya dengan memanggil FltObjectDereference pada masing-masing. Dengan demikian setiap panggilan yang berhasil ke FltEnumerateInstances harus dicocokkan dengan panggilan berikutnya ke FltObjectDereference untuk setiap penunjuk instans yang dikembalikan.

Untuk menghitung semua driver minifilter terdaftar, hubungi FltEnumerateFilters.

Untuk menghitung semua volume yang diketahui oleh Manajer Filter, panggil FltEnumerateVolumes.

Untuk mencantumkan informasi filter untuk semua driver minifilter terdaftar, panggil FltEnumerateFilterInformation.

Untuk mendapatkan informasi filter untuk driver minifilter tertentu, panggil FltGetFilterInformation.

Untuk menghitung semua instans driver minifilter tertentu, panggil FltEnumerateInstanceInformationByFilter.

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

Persyaratan

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

Lihat juga

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference