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


Функция FilterInstanceFindFirst (fltuser.h)

Функция FilterInstanceFindFirst возвращает сведения об экземпляре драйвера минифильтра и используется в качестве отправной точки для сканирования экземпляров минифильтра.

Синтаксис

HRESULT FilterInstanceFindFirst(
  [in]  LPCWSTR                    lpFilterName,
  [in]  INSTANCE_INFORMATION_CLASS dwInformationClass,
  [out] LPVOID                     lpBuffer,
  [in]  DWORD                      dwBufferSize,
  [out] LPDWORD                    lpBytesReturned,
  [out] LPHANDLE                   lpFilterInstanceFind
);

Параметры

[in] lpFilterName

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

[in] dwInformationClass

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

Значение Значение
InstanceBasicInformation Возвращает структуру INSTANCE_BASIC_INFORMATION для экземпляра .
InstanceFullInformation Возвращает структуру INSTANCE_FULL_INFORMATION для экземпляра .
InstancePartialInformation Возвращает структуру INSTANCE_PARTIAL_INFORMATION для экземпляра .
InstanceAggregateStandardInformation Возвращает структуру INSTANCE_AGGREGATE_STANDARD_INFORMATION для экземпляра . Часть структуры LegacyFilter не используется. Эта структура доступна начиная с Windows Vista.

[out] lpBuffer

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

[in] dwBufferSize

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

[out] lpBytesReturned

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

[out] lpFilterInstanceFind

Указатель на переменную, выделенную вызывающим объектом, которая получает дескриптор поиска для минифильтра в случае успешного вызова FilterInstanceFindFirst ; В противном случае он получает INVALID_HANDLE_VALUE. Этот дескриптор поиска можно использовать в последующих вызовах FilterInstanceFindNext и FilterInstanceFindClose.

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

FilterInstanceFindFirst возвращает S_OK в случае успешного выполнения. В противном случае возвращается значение ошибки HRESULT, например одно из следующих значений:

Код возврата Описание
HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
Буфер, на который указывает lpBuffer, недостаточно велик, чтобы содержать запрошенные сведения. При возврате этого значения lpBytesReturned будет содержать размер буфера, необходимого для данной структуры dwInformationClass (в байтах).
HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER)
Для параметра dwInformationClass указано недопустимое значение. Например, если параметр InstanceAggregateStandardInformation указан для операционных систем до Windows Vista, функция возвращает это значение HRESULT.
HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS)
Минифильтр, заданный параметром lpFilterName , не имеет экземпляра в стеке файловой системы.

Комментарии

Функция FilterInstanceFindFirst открывает дескриптор поиска и возвращает сведения об экземпляре для минифильтра с именем lpFilterName. После установки дескриптора поиска вызовите FilterInstanceFindNext для поиска других экземпляров того же минифильтра. Если дескриптор поиска больше не нужен, закройте его, вызвав FilterInstanceFindClose.

Требования

   
Целевая платформа Универсальное
Верхняя часть fltuser.h (включая FltUser.h)
Библиотека FltLib.lib
DLL FltLib.dll

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

FilterInstanceFindClose

FilterInstanceFindNext

INSTANCE_AGGREGATE_STANDARD_INFORMATION

INSTANCE_BASIC_INFORMATION

INSTANCE_FULL_INFORMATION

INSTANCE_PARTIAL_INFORMATION