CVssWriter::Initialize 方法 (vswriter.h)
初始化 CVssWriter 对象并允许编写器应用程序与 VSS 交互。
Initialize 是由 CVssWriter 基类实现的公共方法。
语法
HRESULT Initialize(
[in] VSS_ID WriterId,
[in] LPCWSTR wszWriterName,
[in] VSS_USAGE_TYPE ut,
[in] VSS_SOURCE_TYPE st,
[in] VSS_APPLICATION_LEVEL nLevel,
[in] DWORD dwTimeoutFreeze,
[in] VSS_ALTERNATE_WRITER_STATE aws,
[in] bool bIOThrottlingOnly,
[in] LPCWSTR wszWriterInstanceName
);
参数
[in] WriterId
编写器类的全局唯一标识符 (GUID) 。
[in] wszWriterName
一个以 null 结尾的宽字符串,其中包含编写器的名称。 此字符串未本地化。
[in] ut
VSS_USAGE_TYPE枚举值,该值指示如何在主机系统上使用编写器管理的数据。
[in] st
一个VSS_SOURCE_TYPE枚举值,该值指示编写器管理的数据类型。
[in] nLevel
一个 VSS_APPLICATION_LEVEL 枚举值,该值指示编写器接收冻结事件通知的应用程序级别。
此参数的默认值为 VSS_APP_FRONT_END。
[in] dwTimeoutFreeze
编写器收到 Freeze 事件通知与从 VSS 收到匹配的 Thaw 事件通知之间的最大允许时间(以毫秒为单位)。 超时到期后,将自动调用编写器的 CVssWriter::OnAbort 方法。
此参数的默认值为 60000。
[in] aws
一个VSS_ALTERNATE_WRITER_STATE枚举值,该值指示编写器是否具有关联的备用编写器。
此参数的默认值为 VSS_AWS_NO_ALTERNATE_WRITER。 调用方不应重写此默认值。 此参数留待将来使用。
[in] bIOThrottlingOnly
如果启用了 I/O 限制方法,请将此参数设置为 true ,否则将 此参数设置为 false 。
此参数的默认值为 false。 调用方不应重写此默认值。 此参数留待将来使用。
[in] wszWriterInstanceName
包含编写器实例名称的 以 null 结尾的宽字符串。
此参数的默认值为 NULL。 如果编写器有多个实例并且需要还原事件,则此参数是必需的,不能为 NULL。 有关详细信息,请参阅以下“备注”部分。
Windows Server 2003 和 Windows XP: 在 Windows Server 2003 SP1 之前,此参数保留供系统使用,调用方不应重写默认值。
返回值
下面是此方法的有效返回代码。
值 | 含义 |
---|---|
|
已成功初始化编写器对象。 |
|
无法初始化编写器对象;VSS 编写器基础结构处于非活动状态,因为 Windows 处于安全模式或正在设置中。 |
|
调用方不是管理员。 |
|
其中一个参数值无效。 |
|
调用方内存或其他系统资源不足。 |
|
意外错误。 错误代码记录在错误日志文件中。 有关详细信息,请参阅 VSS 下的事件和错误处理。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前不支持此值。 改用E_UNEXPECTED。 |
注解
VSS 将唯一的编写器实例 ID 分配给编写器应用程序的每个实例。 如果系统上同时存在多个实例 (例如,如果系统) 上运行多个 SQL 服务器,则每个编写器都由其编写器类 ID 和编写器实例 ID 的组合进行唯一标识。
wszWriterInstanceName 参数允许多实例编写器将每个编写器实例的持久名称指定为可读字符串。 此名称在系统上编写器的所有实例中必须是唯一的。 如果编写器有多个实例并且需要还原事件,则必须为此参数指定非 NULL 字符串。 VSS 使用实例名称来正确还原多实例编写器。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | vswriter.h (包括 Vss.h、VsWriter.h) |
Library | VssApi.lib |