findFirstStreamW 函数 (fileapi.h)
枚举指定文件或目录中具有 ::$DATA 流类型的第一个流。
若要以事务处理操作的形式执行此操作,请使用 FindFirstStreamTransactedW 函数。
语法
HANDLE FindFirstStreamW(
[in] LPCWSTR lpFileName,
[in] STREAM_INFO_LEVELS InfoLevel,
[out] LPVOID lpFindStreamData,
DWORD dwFlags
);
参数
[in] lpFileName
完全限定的文件名。
[in] InfoLevel
返回的数据的信息级别。 此参数是 STREAM_INFO_LEVELS 枚举类型中的值之一。
Value | 含义 |
---|---|
|
数据以 WIN32_FIND_STREAM_DATA 结构返回。 |
[out] lpFindStreamData
指向接收文件流数据的缓冲区的指针。 此数据的格式取决于 InfoLevel 参数的值。
dwFlags
保留供将来使用。 此参数必须为零。
返回值
如果函数成功,则返回值为搜索句柄,可用于 对 FindNextStreamW 函数的后续调用。
如果函数失败,则返回值为 INVALID_HANDLE_VALUE。 要获得更多的错误信息,请调用 GetLastError。
如果找不到流,则函数将失败, GetLastError 将返回 ERROR_HANDLE_EOF (38) 。
如果文件系统不支持流,则函数将失败, GetLastError 将返回 ERROR_INVALID_PARAMETER (87) 。
备注
FindFirstStreamW 函数打开一个搜索句柄,并返回有关指定文件或目录中第一个$DATA流的信息。 对于文件,这始终是默认的未命名数据流“::$DATA”。 默认情况下,目录没有$DATA流,并且不能有未命名的数据流,但可能在创建命名数据流后设置了命名数据流。 建立搜索句柄后,在调用 FindNextStreamW 函数时使用它来搜索指定文件或目录中的其他流。 当不再需要搜索句柄时,应使用 FindClose 函数将其关闭。
在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。
技术 | 支持 |
---|---|
服务器消息块 (SMB) 3.0 协议 | 是 |
SMB 3.0 透明故障转移 (TFO) | 是 |
具有横向扩展文件共享的 SMB 3.0 (SO) | 是 |
群集共享卷文件系统 (CSV) | 是 |
弹性文件系统 (ReFS) | 是 |
SMB 3.0 支持小于或等于 64K 的流列表。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | fileapi.h (包括 Windows.h、WinBase.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |