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 含义
FindStreamInfoStandard
0
数据以 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

另请参阅

文件管理函数

FindClose

FindFirstStreamTransactedW

FindNextStreamW

STREAM_INFO_LEVELS

WIN32_FIND_STREAM_DATA