LSA_AP_CALL_PACKAGE回调函数 (ntsecpkg.h)

当与 LSA 建立受信任连接的登录应用程序调用 LsaCallAuthenticationPackage 函数并指定身份验证包的标识符时,由本地安全机构 (LSA) 调用。

LsaApCallPackage 仅用于登录应用程序;来自没有 SeTcbPrivilege 权限的应用程序的调用将改为路由到指定身份验证包的 LsaApCallPackageUntrusted 函数。

语法

LSA_AP_CALL_PACKAGE LsaApCallPackage;

NTSTATUS LsaApCallPackage(
  [in]  PLSA_CLIENT_REQUEST ClientRequest,
  [in]  PVOID ProtocolSubmitBuffer,
  [in]  PVOID ClientBufferBase,
  [in]  ULONG SubmitBufferLength,
  [out] PVOID *ProtocolReturnBuffer,
  [out] PULONG ReturnBufferLength,
  [out] PNTSTATUS ProtocolStatus
)
{...}

parameters

[in] ClientRequest

指向表示 LSA 客户端请求的不透明 LSA_CLIENT_REQUEST 缓冲区的指针。

[in] ProtocolSubmitBuffer

提供特定于身份验证包的协议消息。

[in] ClientBufferBase

提供协议消息的客户端进程中的地址。 重新映射 ProtocolSubmitBuffer 缓冲区内的任何指针可能需要这样做。

[in] SubmitBufferLength

指定 ProtocolSubmitBuffer 缓冲区的长度(以字节为单位)。

[out] ProtocolReturnBuffer

返回客户端进程中输出缓冲区的地址。 身份验证包负责调用 AllocateClientBuffer 函数以在客户端进程中分配缓冲区。 此缓冲区的内容特定于身份验证包。

[out] ReturnBufferLength

指向 ULONG 的指针,该 ULONG 返回 ProtocolReturnBuffer 缓冲区的长度(以字节为单位)。

[out] ProtocolStatus

指向 NTSTATUS 值的指针。 如果函数返回STATUS_SUCCESS, 则 ProtocolStatus 将返回由身份验证包设置的完成状态。 ProtocolStatus 值特定于身份验证包。

有关 NTSTATUS 代码的详细信息,请参阅平台 SDK 附带的 Subauth.h 文件。

返回值

如果函数成功,则返回STATUS_SUCCESS。 此返回值指示身份验证包尝试提供请求的服务。 使用 ProtocolStatus 参数可返回服务请求的完成状态。

如果身份验证包无法处理请求,因此未尝试提供请求的服务,则返回指示问题的 NTSTATUS 代码。 此代码可以是以下值或 LSA 策略函数返回值之一。

返回代码 说明
STATUS_NO_MEMORY
客户端的内存配额不足以分配输出缓冲区。

注解

此函数必须由身份验证包实现。

要求

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

请参阅

AllocateClientBuffer

LsaApCallPackageUntrusted

LsaCallAuthenticationPackage