WsMatchPolicyAlternative 函数 (webservices.h)

验证策略替代项是否与指定的策略约束兼容。 如果替代项兼容,则使用策略信息填充约束结构。

注意 有关约束结构的信息,请参阅此页上的备注。

 

语法

HRESULT WsMatchPolicyAlternative(
  [in]           WS_POLICY             *policy,
  [in]           ULONG                 alternativeIndex,
  [in]           WS_POLICY_CONSTRAINTS *policyConstraints,
  [in]           BOOL                  matchRequired,
  [in]           WS_HEAP               *heap,
  [in, optional] WS_ERROR              *error
);

参数

[in] policy

指向包含 替代项 的 WS_POLICY 对象的指针。

注意WsGetMetadataEndpoints 返回的每个WS_METADATA_ENDPOINT都包含一个策略对象。
 

[in] alternativeIndex

指定从零开始的索引,该索引标识在策略对象中使用的替代项。 可以使用 WsGetPolicyAlternativeCount 获取策略对象中存在的替代项数。

[in] policyConstraints

指向约束的指针,这些约束指定要匹配的策略以及函数返回 NOERROR 时要填充的字段。

注意 如果未指定属性约束,则使用该特定属性的默认约束值。

有关详细信息 ,请参阅WS_POLICY_CONSTRAINTS

 

[in] matchRequired

指示是否需要匹配项。

注意 如果值为 FALSE ,则不需要匹配,并且与非匹配策略替代项结合使用时,函数将返回S_FALSE。

如果此参数的值为 TRUE ,则需要匹配;如果策略不匹配,则函数将返回错误。

 

[in] heap

指向 对象的指针,用于存储超出指定约束的任何需要分配的数据。

注意 例如,使用此堆分配约束“out”字段中的指针类型。
 

[in, optional] error

指向 WS_ERROR 对象的指针,如果函数失败,应存储有关错误的其他信息。

返回值

此函数可以返回其中一个值。

返回代码 说明
E_INVALIDARG
一个或多个参数无效。
WS_E_INVALID_FORMAT
策略替代项不符合指定的约束,matchRequired 已设置为 TRUE

策略或其他元数据的格式无效。

S_FALSE
策略替代项不符合指定的约束,matchRequired 已设置为 FALSE
S_OK
策略替代项满足特定约束。 约束结构的 out 字段已填充策略中的值。

注解

其中每个数据类型都包含一个名为“out”的结构字段。

如果调用返回 NOERROR,则此函数将填充这些结构的 out 字段的内容。
注意 如果函数调用失败 ,则输出 的内容可能已部分设置,并且可能只从指定的堆对象进行了某些分配。 除非函数返回 NOERROR,否则不得检查 out 字段的内容。

策略对象可能会延迟一些处理,直到调用此函数。 如果处理失败,策略对象设置为 WS_POLICY_STATE_FAULTED

 

要求

要求
最低受支持的客户端 Windows 7 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2 [桌面应用 |UWP 应用]
目标平台 Windows
标头 webservices.h
Library WebServices.lib
DLL WebServices.dll