The EnumerateSecurityPackages function returns an array of SecPkgInfo structures that describe the security packages available to the client.
SECURITY_STATUS EnumerateSecurityPackages(
PULONG pcPackages, // receives the number of packages
PSecPkgInfo *ppPackageInfo // receives array of information
);
If the function succeeds, the return value is SEC_E_OK.
If the function fails, the return value is a nonzero error code.
The SecPkgInfo structures provide information that the caller can use to determine which security package best satisfies the requirements of the caller.
The caller can use the Name member of a SecPkgInfo structure to specify a security package in a call to the AcquireCredentialsHandle function.
The caller must assume that the security provider includes all available security packages in the single call to EnumerateSecurityPackages.
The caller must call the FreeContextBuffer function to free the buffer returned in ppPackageInfo.
AcquireCredentialsHandle, FreeContextBuffer, SecPkgInfo