Функция FltEnumerateInstances (fltkernel.h)
FltEnumerateInstances перечисляет экземпляры драйвера мини-фильтра для заданного драйвера или тома.
Синтаксис
NTSTATUS FLTAPI FltEnumerateInstances(
[in, optional] PFLT_VOLUME Volume,
[in, optional] PFLT_FILTER Filter,
[out] PFLT_INSTANCE *InstanceList,
[in] ULONG InstanceListSize,
[out] PULONG NumberInstancesReturned
);
Параметры
[in, optional] Volume
Непрозрачный указатель на том, для которого вызывающий объект хочет перечислить экземпляры драйвера мини-фильтра. Если значение NULL, перечисляются экземпляры для всех томов. Если фильтра значение NULL не должно бытьNULL.
[in, optional] Filter
Указатель непрозрачного фильтра для драйвера минифильтра, экземпляры которого необходимо перечислить. Если null, перечисляются экземпляры для всех драйверов минифильтра. Должен быть неNULL, если тома равно NULL.
[out] InstanceList
Указатель на выделенный вызывающим буфером, который получает массив непрозрачных указателей экземпляра.
[in] InstanceListSize
Количество непрозрачных указателей экземпляра, которые буфер, который InstanceList указывает на удержание.
[out] NumberInstancesReturned
Указатель на выделенную вызывающим переменную, которая получает количество непрозрачных указателей экземпляра, возвращаемых в массиве, на который InstanceList указывает. Если InstanceListSize слишком мал, FltEnumerateInstances возвращает STATUS_BUFFER_TOO_SMALL и задает NumberInstancesReturned, чтобы указать количество найденных экземпляров сопоставления.
Возвращаемое значение
FltEnumerateInstances возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS, например одно из следующих:
Возвращаемый код | Описание |
---|---|
|
Буфер, на который указывает параметр экземпляра, недостаточно велик, чтобы сохранить запрошенные сведения. Это код ошибки. |
|
том и фильтр не могут быть NULL. Это код ошибки. |
Замечания
Так как экземпляры драйвера минифильтра в списке экземпляров могут изменяться в любое время, два вызова FltEnumerateInstances с одинаковыми значениями тома тома и фильтру не гарантированы возвращать тот же результат.
FltEnumerateInstances добавляет ссылку на rundown к каждому из непрозрачных указателей экземпляра, возвращенных в массиве, к которому указывает параметр Instance List. Если эти указатели больше не нужны, вызывающий объект должен освободить их, вызвав FltObjectDereference на каждом из них. Таким образом, каждый успешный вызов FltEnumerateInstances должен соответствовать последующему вызову FltObjectDereference для каждого возвращаемого указателя экземпляра.
Чтобы перечислить все зарегистрированные драйверы минифильтра, вызовите FltEnumerateFilters.
Чтобы перечислить все тома, известные диспетчеру фильтров, вызовите FltEnumerateVolumes.
Чтобы получить список сведений о фильтрации для всех зарегистрированных драйверов минифильтра, вызовите FltEnumerateFilterInformation.
Чтобы получить сведения о фильтре для заданного драйвера минифильтра, вызовите FltGetFilterInformation.
Чтобы перечислить все экземпляры заданного драйвера минифильтра, вызовите FltEnumerateInstanceInformationByFilter.
Чтобы перечислить все экземпляры драйвера минифильтра в заданном томе, вызовите FltEnumerateInstanceInformationByVolume.
Требования
Требование | Ценность |
---|---|
целевая платформа | Всеобщий |
заголовка | fltkernel.h (include Fltkernel.h) |
библиотеки | FltMgr.lib |
IRQL | <= APC_LEVEL |
См. также
FltEnumerateInstanceInformationByFilter