IVdsServiceIscsi::SetInitiatorSharedSecret 方法 (vds.h)

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

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

语法

HRESULT SetInitiatorSharedSecret(
  [in] VDS_ISCSI_SHARED_SECRET *pInitiatorSharedSecret,
  [in] VDS_OBJECT_ID           targetId
);

参数

[in] pInitiatorSharedSecret

包含共享机密 的VDS_ISCSI_SHARED_SECRET 结构的地址。 如果 pSharedSecret 成员为 NULLulSharedSecretSize 为零, 则 SetInitiatorSharedSecret 方法将清除任何现有机密。 如果此参数为 NULLtargetId 参数未 GUID_NULL则 SetInitiatorSharedSecret 会清除发起程序与目标之间的关联。

[in] targetId

目标的 VDS_OBJECT_ID 。 如果共享机密不特定于目标,则此参数设置为 GUID_NULL

返回值

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

返回代码/值 说明
S_OK
已成功设置共享机密。
VDS_E_INITIALIZED_FAILED
0x80042401L
VDS 初始化失败。 如果应用程序在服务完成初始化之前调用此方法,则会阻止该方法,直到初始化完成。 如果初始化失败,则返回此错误。
VDS_E_TARGET_SPECIFIC_NOT_SUPPORTED
0x80042706L
发起程序服务不支持设置特定于目标的共享机密。

备注

发起程序可能支持为每个目标设置不同的 CHAP 共享机密。

无法以编程方式确定发起程序是否支持特定于目标的机密。 如果对 SetInitiatorSharedSecret 的调用返回VDS_E_TARGET_SPECIFIC_NOT_SUPPORTED,请再次调用 方法,并将 targetId 参数设置为 GUID_NULL。

Microsoft iSCSI 软件发起程序不支持设置特定于目标的机密。

要求

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

另请参阅

IVdsIscsiTarget::RememberInitiatorSharedSecret

IVdsIscsiTarget::SetSharedSecret

IVdsServiceIscsi

IVdsServiceIscsi::RememberTargetSharedSecret

VDS_ISCSI_SHARED_SECRET