LsaApCallPackageUntrusted function

Called by the Local Security Authority (LSA) when an application with an untrusted connection to the LSA calls the LsaCallAuthenticationPackage function and specifies the authentication package's identifier.

Calls from applications that have the SeTcbPrivilege privilege and a trusted connection are routed to LsaApCallPackage instead.


NTSTATUS LsaApCallPackageUntrusted(
  _In_  PLSA_CLIENT_REQUEST ClientRequest,
  _In_  PVOID               ProtocolSubmitBuffer,
  _In_  PVOID               ClientBufferBase,
  _In_  ULONG               SubmitBufferLength,
  _Out_ PVOID               *ProtocolReturnBuffer,
  _Out_ PULONG              ReturnBufferLength,
  _Out_ PNTSTATUS           ProtocolStatus


ClientRequest [in]

Pointer to an opaque LSA_CLIENT_REQUEST buffer representing the LSA client's request.

ProtocolSubmitBuffer [in]

Pointer to a protocol message specific to the authentication package.

ClientBufferBase [in]

Provides the address within the client process of the protocol message. This may be necessary to remap any pointers within the protocol message buffer.

SubmitBufferLength [in]

Indicates the length of the ProtocolSubmitBuffer buffer, in bytes.

ProtocolReturnBuffer [out]

Returns the address of the output buffer within the client process. The authentication package is responsible for calling the AllocateClientBuffer function to allocate the buffer within the client process. The contents of this buffer are specific to the authentication package.

ReturnBufferLength [out]

Pointer to a ULONG that returns the length of the ProtocolReturnBuffer buffer, in bytes.

ProtocolStatus [out]

Pointer to an NTSTATUS value. If the function returns STATUS_SUCCESS, ProtocolStatus is set to the completion status returned by the specified authentication package. Status values returned are specific to the authentication package.

More information about NTSTATUS codes can be found in the Subauth.h file shipped with the Platform SDK.

Return value

If the function succeeds, return STATUS_SUCCESS. This return value indicates that the authentication package attempted to provide the requested service. Use the ProtocolStatus parameter to return the completion status of the service request.

If the authentication package could not process the request and therefore did not attempt to provide the requested service, return an NTSTATUS code indicating the problem. This code can be the following value or one of the LSA Policy Function Return Values.

Return codeDescription

The client's memory quota is insufficient to allocate the output buffer.



This function is similar to LsaApCallPackage but handles untrusted connections. An application should determine what subset of the functionality implemented in LsaApCallPackage should be available to untrusted connections, and it should implement that subset in LsaApCallPackageUntrusted.

For information about establishing an untrusted connection, see LsaConnectUntrusted.


Minimum supported client

Windows XP [desktop apps only]

Minimum supported server

Windows Server 2003 [desktop apps only]



See also