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
指向调用方分配的变量的指针,如果对 FilterInstanceFindFirst 的调用成功,该变量接收 lpBuffer 指向的缓冲区中返回的字节数。 此参数是必需的,不能为 NULL。
[out] lpFilterInstanceFind
指向调用方分配的变量的指针,如果 对 FilterInstanceFindFirst 的调用成功,该变量接收微筛选器的搜索句柄;否则,它将接收INVALID_HANDLE_VALUE。 此搜索句柄可用于后续调用 FilterInstanceFindNext 和 FilterInstanceFindClose。
返回值
如果成功,FilterInstanceFindFirst 将返回S_OK。 否则,它将返回 HRESULT 错误值,如以下值之一:
返回代码 | 说明 |
---|---|
|
lpBuffer 指向的缓冲区不够大,无法包含请求的信息。 返回此值时, lpBytesReturned 将包含给定 dwInformationClass 结构所需的缓冲区大小(以字节为单位)。 |
|
为 dwInformationClass 参数指定了无效值。 例如,如果为 Windows Vista 之前的操作系统指定 InstanceAggregateStandardInformation ,则函数将返回此 HRESULT 值。 |
|
由 lpFilterName 参数指定的微筛选器在文件系统堆栈上没有 实例。 |
备注
FilterInstanceFindFirst 函数打开一个搜索句柄,并返回由 lpFilterName 命名的微筛选器实例的相关信息。 建立搜索句柄后,调用 FilterInstanceFindNext 以搜索同一微筛选器的其他实例。 如果不再需要搜索句柄,请通过调用 FilterInstanceFindClose 将其关闭。
要求
目标平台 | 通用 |
标头 | fltuser.h (包括 FltUser.h) |
Library | FltLib.lib |
DLL | FltLib.dll |