IVdsIscsiTarget::SetSharedSecret 方法 (vds.h)

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

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

语法

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 提供程序 。 可能的返回值包括以下内容。

返回代码/值 说明
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。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 R2 [仅限桌面应用]
目标平台 Windows
标头 vds.h
Library Uuid.lib
可再发行组件 VDS 1.1

另请参阅

IVdsIscsiTarget

IVdsIscsiTarget::RememberInitiatorSharedSecret

IVdsIscsiTarget::SetSharedSecret

IVdsServiceIscsi::SetInitiatorSharedSecret

VDS_ISCSI_SHARED_SECRET