IVdsIscsiTarget::SetSharedSecret 方法 (vds.h)

[从 Windows 8 和 Windows Server 2012 开始, 虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。

设置目标对发起程序进行身份验证时用于 CHAP 身份验证的目标 CHAP 共享机密。

Syntax

HRESULT SetSharedSecret(
  [in] VDS_ISCSI_SHARED_SECRET *pTargetSharedSecret,
  [in] LPWSTR                  pwszInitiatorName
);

参数

[in] pTargetSharedSecret

包含共享机密 的VDS_ISCSI_SHARED_SECRET 结构的地址。 如果 pSharedSecret 成员为 NULLulSharedSecretSize 为零, 则 SetSharedSecret 方法将清除任何现有机密。

[in] pwszInitiatorName

指定共享机密要关联的 iSCSI 名称(如果机密是特定于发起程序)的字符串。 传递的值用作 CHAP 名称。 如果地址为 NULL ,则更改适用于所有发起方的默认机密。

返回值

此方法可以返回标准 HRESULT 值,例如E_INVALIDARG或E_OUTOFMEMORY,以及 特定于 VDS 的返回值。 它还可以使用HRESULT_FROM_WIN32宏返回转换的系统错误代码。 错误可能源自 VDS 本身或正在使用的基础 VDS 提供程序 。 可能的返回值包括以下内容。

返回代码/值 Description
S_OK
已成功设置共享机密。
VDS_E_PROVIDER_CACHE_CORRUPT
0x8004241FL
提供程序的缓存已损坏。 这表示提供程序内的软件或通信问题,用于缓存有关附加设备的信息。 调用方可以使用 IVdsHwProvider::Reenumerate 方法,后跟 IVdsHwProvider::Refresh 方法还原缓存。
VDS_E_OBJECT_DELETED
0x8004240BL
目标对象不再存在。
VDS_E_NOT_SUPPORTED
0x80042400L
此提供程序不支持此作或参数组合。
VDS_E_INITIATOR_SPECIFIC_NOT_SUPPORTED
0x80042707L
目标不支持特定于发起程序共享的机密。

注解

硬件提供程序必须将子系统本身配置为更改目标共享机密。 用于安全的机密不会由 VDS 持久保存,也不应由本地计算机上的硬件提供程序持久保存。 硬件提供程序应以安全的方式将机密传输到子系统,子系统负责保存机密。

某些 iSCSI 目标可能支持为每个发起程序设置不同的 CHAP 共享机密。 如果目标不支持特定于发起程序机密,则 对 SetSharedSecret 的调用将返回VDS_E_INITIATOR_SPECIFIC_NOT_SUPPORTED。

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2003 R2 [仅限桌面应用]
目标平台 Windows操作系统
Header vds.h
Library Uuid.lib
可再发行组件 VDS 1.1

另请参阅

IVdsIscsiTarget

IVdsIscsiTarget::RememberInitiatorSharedSecret

IVdsIscsiTarget::SetSharedSecret

IVdsServiceIscsi::SetInitiatorSharedSecret

VDS_ISCSI_SHARED_SECRET