FindFirstStreamTransactedW 函数 (winbase.h)

[Microsoft 强烈建议开发人员利用替代方法来实现应用程序的需求。 TxF 致力于实现的许多方案都可以通过更简单、更易用的技术来实现。 此外,TxF 在 Microsoft Windows 的将来版本中可能不可用。 有关详细信息,以及 TxF 的替代方法,请参阅事务性 NTFS 的替代方法。]

以事务处理操作的形式枚举指定文件或目录中的第一个流。

语法

HANDLE FindFirstStreamTransactedW(
  [in]  LPCWSTR            lpFileName,
  [in]  STREAM_INFO_LEVELS InfoLevel,
  [out] LPVOID             lpFindStreamData,
        DWORD              dwFlags,
  [in]  HANDLE             hTransaction
);

参数

[in] lpFileName

完全限定的文件名。

文件必须驻留在本地计算机上;否则,函数将失败,并将最后一个错误代码设置为 ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE (6805) 。

[in] InfoLevel

返回的数据的信息级别。 此参数是 STREAM_INFO_LEVELS 枚举类型中的值之一。

含义
FindStreamInfoStandard
0
数据以 WIN32_FIND_STREAM_DATA 结构返回。

[out] lpFindStreamData

指向接收文件数据的缓冲区的指针。 此数据的格式取决于 InfoLevel 参数的值。

dwFlags

保留供将来使用。 此参数必须为零。

[in] hTransaction

事务的句柄。 此句柄由 CreateTransaction 函数返回。

返回值

如果函数成功,则返回值为搜索句柄,可用于 对 FindNextStreamW 函数的后续调用。

如果函数失败,则返回值为 INVALID_HANDLE_VALUE。 要获得更多的错误信息,请调用 GetLastError。

注解

所有文件都包含默认数据流。 在 NTFS 上,文件还可以包含一个或多个命名数据流。 在 FAT 文件系统上,文件的数据流不能超过默认数据流,因此,在 FAT 文件系统文件上使用时,此函数不会返回有效结果。 此函数适用于支持硬链接的所有文件系统;否则,函数将返回 ERROR_STATUS_NOT_IMPLEMENTED (6805) 。

FindFirstStreamTransactedW 函数打开搜索句柄,并返回有关指定文件或目录中第一个流的信息。 对于文件,这始终是默认数据流::$DATA。 建立搜索句柄后,在 FindNextStreamW 函数中使用它来搜索指定文件或目录中的其他流。 当不再需要搜索句柄时,应使用 FindClose 函数将其关闭。

在 Windows 8 和 Windows Server 2012 中,此函数由以下技术支持。

技术 支持
服务器消息块 (SMB) 3.0 协议
SMB 3.0 透明故障转移 (TFO)
具有横向扩展文件共享的 SMB 3.0 (SO)
群集共享卷文件系统 (CSV)
弹性文件系统 (ReFS)
 

SMB 3.0 不支持 TxF。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

文件管理函数

FindClose

FindNextStreamW

STREAM_INFO_LEVELS

事务性 NTFS

WIN32_FIND_STREAM_DATA