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