Функция FltEnumerateInstanceInformationByDeviceObject (fltkernel.h)

Подпрограмма FltEnumerateInstanceInformationByDeviceObject предоставляет сведения об экземплярах драйвера минифильтра и устаревших драйверах фильтров, подключенных к тому, связанному с указанным объектом устройства.

Синтаксис

NTSTATUS FLTAPI FltEnumerateInstanceInformationByDeviceObject(
  [in]  PDEVICE_OBJECT             DeviceObject,
  [in]  ULONG                      Index,
  [in]  INSTANCE_INFORMATION_CLASS InformationClass,
  [out] PVOID                      Buffer,
  [in]  ULONG                      BufferSize,
  [out] PULONG                     BytesReturned
);

Параметры

[in] DeviceObject

Объект устройства для связанного объекта файла или тома.

[in] Index

Отсчитываемый от нуля индекс экземпляра драйвера минифильтра или устаревшего драйвера фильтра, для которого запрашиваются сведения.

[in] InformationClass

Тип сведений, возвращаемых для экземпляра драйвера минифильтра или устаревшего драйвера фильтра. Этот параметр может иметь одно из следующих значений.

Значение Значение
InstanceBasicInformation Буфер, на который указывает параметр Buffer , получает структуру INSTANCE_BASIC_INFORMATION для экземпляра минифильтра. Устаревшие драйверы фильтров игнорируются.
InstanceFullInformation Буфер, на который указывает параметр Buffer , получает структуру INSTANCE_FULL_INFORMATION для экземпляра минифильтра. Устаревшие драйверы фильтров игнорируются.
InstancePartialInformation Буфер, на который указывает параметр Buffer , получает структуру INSTANCE_PARTIAL_INFORMATION для экземпляра минифильтра. Устаревшие драйверы фильтров игнорируются.
InstanceAggregateStandardInformation Буфер, на который указывает параметр Buffer , получает структуру INSTANCE_AGGREGATE_STANDARD_INFORMATION для экземпляра драйвера минифильтра или устаревшего драйвера фильтра.

[out] Buffer

Указатель на буфер, выделенный вызывающим объектом, который получает запрошенные сведения. Тип сведений, возвращаемых в буфере, определяется параметром InformationClass .

[in] BufferSize

Размер (в байтах) буфера, на который указывает параметр Buffer . Вызывающий объект должен задать этот параметр в соответствии с заданным значением InformationClass .

[out] BytesReturned

Указатель на переменную, выделенную вызывающим объектом, которая получает количество байтов, возвращаемых в буфере, на который указывает buffer . Если входное значение BufferSize слишком мало, FltEnumerateInstanceInformationByDeviceObject возвращает STATUS_BUFFER_TOO_SMALL и задает для этой переменной количество байтов, необходимых для хранения запрошенной информации. Этот параметр является обязательным и не может иметь значение NULL.

Возвращаемое значение

FltEnumerateInstanceInformationByDeviceObject возвращает STATUS_SUCCESS или соответствующее значение NTSTATUS , например одно из следующих значений:

Код возврата Описание
STATUS_BUFFER_TOO_SMALL
Буфер, на который указывает параметр Buffer , недостаточно велик для хранения запрошенной информации.
STATUS_FLT_DELETING_OBJECT
Найден соответствующий экземпляр минифильтра, но он сносится. Обратите внимание, что это возвращаемое значение не применяется к устаревшим драйверам фильтров, так как устаревшие драйверы фильтров не могут быть выгружены.
STATUS_INVALID_PARAMETER
Для параметра InformationClass указано недопустимое значение.
STATUS_NO_MORE_ENTRIES
В списке экземпляров или фильтров тома больше нет записей.
STATUS_FLT_VOLUME_NOT_FOUND
Связанный том для DeviceObject не найден.
STATUS_FLT_INTERNAL_ERROR
DeviceObject не является допустимым объектом устройства тома.

-или-

Том, связанный с DeviceObject , был зарегистрирован, но к нему не подключены экземпляры фильтра.

Комментарии

Использование параметра Index — это просто способ для FltEnumerateInstanceInformationByDeviceObject выбрать экземпляры драйвера минифильтра и устаревшие драйверы фильтров в списке экземпляров или фильтров для тома, связанного с DeviceObject. Так как экземпляры драйвера мини-фильтра в списке экземпляров или фильтров могут измениться в любое время, два вызова FltEnumerateInstanceInformationByDeviceObject с одинаковыми значениями Index и DeviceObject не гарантируют, что возвращают одинаковый результат.

Эта подпрограмма возвращает как устаревшие сведения о драйвере фильтра, так и сведения об экземпляре драйвера минифильтра, если параметр InformationClass имеет значение InstanceAggregateStandardInformation.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Универсальное
Верхняя часть fltkernel.h (включая Fltkernel.h)
Библиотека FltMgr.lib
IRQL <= APC_LEVEL

См. также раздел

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstanceInformationByVolumeName