IFsiFileItem2::AddStream 方法 (imapi2fs.h)

将命名流与文件系统映像中的特定文件相关联。

语法

HRESULT AddStream(
  [in] BSTR    name,
  [in] IStream *streamData
);

参数

[in] name

字符串表示命名流的名称。 这不应包括路径,并且应仅包含根据文件系统命名约定的有效字符。

[in] streamData

用于写入生成的文件系统映像的命名流的 IStream 接口。

返回值

S_OK成功后返回,但其他成功代码可能由于实现而返回。 以下错误代码通常在操作失败时返回,但不表示唯一可能的错误值:

返回代码/值 说明
IMAPI_S_IMAGE_FEATURE_NOT_SUPPORTED
值:0x00AAB15FL
当前文件系统修订版不支持功能,因此,将创建不包含此功能的功能。
E_POINTER
值:0x80004003
指针无效。
IMAPI_E_INVALID_PARAM
值:0xC0AAB101
为参数 '%1!ls!' 指定的值 之间的时间间隔无效。
IMAPI_E_NOT_IN_FILE_SYSTEM
值:0xC0AAB10B
ls!' 不是文件系统的一部分。 必须添加它才能完成此操作。
IMAPI_E_READONLY
值:0xC0AAB102
引用的 IFileSystemImage 对象处于只读模式。
IMAPI_E_FSI_INTERNAL_ERROR
值:0xC0AAB100L
发生内部文件系统错误。
IMAPI_E_DUP_NAME
值:0xC0AAB112L
'%1!ls!' 名称已存在。
IMAPI_E_DATA_STREAM_READ_FAILURE
值:0xC0AAB129L
无法从为文件 “%1!ls!”提供的流中读取数据。
IMAPI_E_IMAGE_SIZE_LIMIT
值:0xC0AAB120L
添加 “%1!ls!” 将导致结果图像的大小大于当前配置的限制。
IMAPI_E_DATA_STREAM_INCONSISTENCY
值:0xC0AAB128L
为文件 “%1!ls!” 提供的数据流不一致;应 为 %2!I64d! 字节,找到 %3!I64d!
E_OUTOFMEMORY
值:0x8007000EL
未能分配所需的内存。

注解

要向其添加命名流的文件必须已存在于文件系统映像中。 如果使用已存在命名流 的名称 调用此方法,它将返回错误,并且不会替换现有的命名流。

如果为文件系统对象调用此方法,该文件系统对象不包含 UDF,该对象在启用在结果映像中创建的文件系统列表中,或者如果 UDF 修订低于 2.00,则此方法 返回成功代码IMAPI_S_IMAGE_FEATURE_NOT_SUPPORTED。 此成功代码表示已添加命名流,但除非文件系统对象中启用了 UDF 修订版 2.00 或更高版本,否则不会显示在生成的文件系统映像中。

目前 ,无论 映像的只读状态如何,在导入的文件系统映像上调用此方法时,都会返回IMAPI_E_READONLY。

Windows Server 2003 支持此方法,Service Pack 1 (SP1) 、Windows XP with Service Pack 2 (SP2) ,以及 Windows Vista 通过适用于存储的 Windows 功能包。 Windows 7 和 Windows Server 2008 R2 原生支持此更新包提供的所有功能。

要求

要求
最低受支持的客户端 Windows Vista、Windows XP 和 SP2 [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 imapi2fs.h

另请参阅

IFsiFileItem2