LSA_ALLOCATE_CLIENT_BUFFER callback function (ntsecpkg.h)

Allocates a buffer in the client's address space. Buffers allocated in the client's address space are used to hold information returned to the client from an authentication package.

Syntax

LSA_ALLOCATE_CLIENT_BUFFER LsaAllocateClientBuffer;

NTSTATUS LsaAllocateClientBuffer(
  [in]  PLSA_CLIENT_REQUEST ClientRequest,
  [in]  ULONG LengthRequired,
  [out] PVOID *ClientBaseAddress
)
{...}

Parameters

[in] ClientRequest

Pointer to an opaque LSA_CLIENT_REQUEST data structure that contains information about the LSA client's authentication request. A custom authentication package should pass in the value received during the client's call to the function, such as LsaApCallPackage or LsaApLogonUser, that returns the output parameter.

[in] LengthRequired

Length of the buffer needed, in bytes.

[out] ClientBaseAddress

Pointer that receives the address of the buffer. This address is the virtual address of the buffer within the client process, not in the current process.

Return value

If the function succeeds, the return value is STATUS_SUCCESS.

If the function fails, the return value is an NTSTATUS code, which can be the following value or one of the LSA Policy Function Return Values.

Return code Description
STATUS_NO_MEMORY
The client process does not have an adequate memory quota to allocate the buffer.
 

The LsaNtStatusToWinError function converts an NTSTATUS code to a Windows error code.

Remarks

The authentication package or the client process must later free the buffer. The authentication process can free the buffer by using the FreeClientBuffer dispatch routine. The client process can free the buffer by using the LsaFreeReturnBuffer function.

Requirements

Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header ntsecpkg.h

See also

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE