Поделиться через


Функция 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 Буфер, на который указывает параметр буфера , получает структуру INSTANCE_BASIC_INFORMATION для экземпляра минифильтратора. Устаревшие драйверы фильтров игнорируются.
InstanceFullInformation Буфер, на который указывает параметр буфера , получает структуру INSTANCE_FULL_INFORMATION для экземпляра мини-фильтра. Устаревшие драйверы фильтров игнорируются.
InstancePartialInformation Буфер, на который указывает параметр буфера, получает структуру INSTANCE_PARTIAL_INFORMATION для экземпляра мини-фильтра. Устаревшие драйверы фильтров игнорируются.
InstanceAggregateStandardInformation Буфер, на который указывает параметр буфера , получает структуру INSTANCE_AGGREGATE_STANDARD_INFORMATION для экземпляра драйвера мини-фильтра или устаревшего драйвера фильтра.

[out] Buffer

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

[in] BufferSize

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

[out] BytesReturned

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

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

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

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

-или-

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

Замечания

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 8.
целевая платформа Всеобщий
заголовка fltkernel.h (include Fltkernel.h)
библиотеки FltMgr.lib
IRQL <= APC_LEVEL

См. также

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateInstanceInformationByVolumeName