SpExchangeMetaDataFn 回调函数 (ntsecpkg.h)

将元数据发送到 安全支持提供程序。 此函数发送的元数据是通过之前对 SpQueryMetaDataFn 函数的调用获取的。

语法

SpExchangeMetaDataFn Spexchangemetadatafn;

NTSTATUS Spexchangemetadatafn(
  [in]           LSA_SEC_HANDLE CredentialHandle,
  [in, optional] PUNICODE_STRING TargetName,
  [in]           ULONG ContextRequirements,
  [in]           ULONG MetaDataLength,
  [in]           PUCHAR MetaData,
  [in, out]      PLSA_SEC_HANDLE ContextHandle
)
{...}

参数

[in] CredentialHandle

要用于安全上下文的 凭据 的句柄。 如果 ContextHandle 参数在输入时指向 NULL ,则此函数使用此参数的值来创建安全上下文。

如果 ContextHandle 参数在输入时指向 NULL,则此参数的值不能为 NULL

[in, optional] TargetName

指向包含上下文目标名称的 UNICODE_STRING 的指针。

[in] ContextRequirements

指示客户端所需的上下文属性的标志。

下面是有效的值。 可以使用逻辑 OR 操作组合值。

含义
ISC_REQ_DELEGATE
允许服务器模拟客户端。
ISC_REQ_MUTUAL_AUTH
客户端和服务器都需要证明其身份。
ISC_REQ_REPLAY_DETECT
安全上下文将支持检测重播的数据包。
ISC_REQ_SEQUENCE_DETECT
安全上下文将支持检测无序消息。
ISC_REQ_USE_SESSION_KEY
必须协商新的 会话密钥
ISC_REQ_PROMPT_FOR_CREDS
如果客户端是交互式用户,则包必须尽可能提示用户输入相应的凭据。
ISC_REQ_USE_SUPPLIED_CREDS
输入缓冲区包含应用于对连接进行身份验证的特定于包的凭据信息。
ISC_REQ_ALLOCATE_MEMORY
包必须分配内存。 调用方最终必须调用 FreeContextBuffer 函数来释放包分配的内存。
ISC_REQ_USE_DCE_STYLE
调用方需要三段相互身份验证事务。
ISC_REQ_DATAGRAM
应使用数据报类型的通信通道。 有关详细信息,请参阅 数据报上下文
ISC_REQ_CONNECTION
应使用连接类型的通信通道。 有关详细信息,请参阅 面向连接的上下文
ISC_REQ_EXTENDED_ERROR
如果上下文失败,请生成错误消息以发送回客户端。
ISC_REQ_STREAM
应使用流式通信通道。 有关详细信息,请参阅Stream上下文
ISC_REQ_INTEGRITY
验证缓冲区完整性;但是,不会检测到重播和失序消息。

[in] MetaDataLength

MetaData 缓冲区的大小(以字符为单位)。

[in] MetaData

要发送的元数据。

[in, out] ContextHandle

要使用的安全句柄的句柄。 如果此参数在输入时指向 NULL ,则此函数使用 CredentialHandleTargetName 参数的值分配和初始化安全上下文。

如果此参数在输入时指向 NULL则 CredentialHandle 不能为 NULL

返回值

如果函数成功,则返回 STATUS_SUCCESS或信息性状态代码。

如果函数失败,则返回 NTSTATUS 错误代码,指示失败的原因。 有关详细信息,请参阅“备注”。

注解

SpLsaModeInitialize 函数接收的 SECPKG_FUNCTION_TABLE 结构中提供了指向 SpExchangeMetaDataFn 函数的指针。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 ntsecpkg.h