125 TRACE(
"InitSecurityInterfaceA() called\n");
134 TRACE(
"InitSecurityInterfaceW() called\n");
212 size_t tableSize = inFnTableA->
dwVersion == 1 ?
216 memcpy(fnTableA, inFnTableA, tableSize);
283 size_t tableSize = inFnTableW->
dwVersion == 1 ?
287 memcpy(fnTableW, inFnTableW, tableSize);
344 if (
info && (inInfoA || inInfoW))
393 if (fnTableA || fnTableW)
398 ret->loaded = !moduleName;
434 for (
i = 0;
i < toAdd;
i++)
436 SecurePackage *
package = HeapAlloc(GetProcessHeap(), 0, sizeof(SecurePackage));
442 package->provider = provider;
465 TRACE(
"loaded %s, InitSecurityInterfaceA is %p, InitSecurityInterfaceW is %p\n",
466 debugstr_w(moduleName), pInitSecurityInterfaceA,
467 pInitSecurityInterfaceW);
468 if (pInitSecurityInterfaceW || pInitSecurityInterfaceA)
477 if (pInitSecurityInterfaceA)
478 fnTableA = pInitSecurityInterfaceA();
479 if (pInitSecurityInterfaceW)
480 fnTableW = pInitSecurityInterfaceW();
486 TRACE(
"%s has built-in providers, skip adding\n",
debugstr_w(moduleName));
493 TRACE(
"%s has built-in providers, skip adding\n",
debugstr_w(moduleName));
515 'S',
'Y',
'S',
'T',
'E',
'M',
'\\',
'C',
'u',
'r',
'r',
'e',
'n',
't',
'C',
'o',
'n',
't',
'r',
516 'o',
'l',
'S',
'e',
't',
'\\',
'C',
'o',
'n',
't',
'r',
'o',
'l',
'\\',
'S',
'e',
'c',
'u',
'r',
517 'i',
't',
'y',
'P',
'r',
'o',
'v',
'i',
'd',
'e',
'r',
's',
'\0'
520 'S',
'e',
'c',
'u',
'r',
'i',
't',
'y',
'P',
'r',
'o',
'v',
'i',
'd',
'e',
'r',
's',0
543 for (
ptr = securityPkgNames;
544 ptr < securityPkgNames +
size; )
548 for (comma =
ptr; *comma && *comma !=
','; comma++)
599 if (
ret->provider && !
ret->provider->loaded)
602 if (
ret->provider->lib)
613 if (pInitSecurityInterfaceA)
614 fnTableA = pInitSecurityInterfaceA();
615 if (pInitSecurityInterfaceW)
616 fnTableW = pInitSecurityInterfaceW();
714 TRACE(
"(%p, %p)\n", pcPackages, ppPackageInfo);
752 *pkgInfo = package->
infoW;
756 pkgInfo->
Name = nextString;
758 nextString +=
lstrlenW(nextString) + 1;
767 nextString +=
lstrlenW(nextString) + 1;
792 size_t bytesNeeded = cPackages *
sizeof(
SecPkgInfoA);
795 for (
i = 0;
i < cPackages;
i++)
810 for (
i = 0;
i < cPackages;
i++)
818 pkgInfo->
Name = nextString;
826 nextString +=
lstrlenA(nextString) + 1;
840 nextString +=
lstrlenA(nextString) + 1;
865 if (*pcPackages && !*ppPackageInfo)
908 if (bufferW ==
NULL) {
938 if (NameFormat == NameUnknown)
944 ZeroMemory(&objectAttributes,
sizeof(objectAttributes));
945 objectAttributes.
Length =
sizeof(objectAttributes);
959 (
PVOID *)&domainInfo);
963 WARN(
"LsaQueryInformationPolicy failed with NT status %u\n",
973 case NameSamCompatible:
1012 case NameFullyQualifiedDN:
1016 case NameUserPrincipal:
1017 case NameCanonicalEx:
1018 case NameServicePrincipal:
1020 FIXME(
"NameFormat %d not implemented\n", NameFormat);
1053 if (bufferW ==
NULL) {
1086 case NameSamCompatible:
1116 case NameFullyQualifiedDN:
1120 case NameUserPrincipal:
1121 case NameCanonicalEx:
1122 case NameServicePrincipal:
1135 EXTENDED_NAME_FORMAT DesiredNameFormat,
LPSTR lpTranslatedName,
1139 DesiredNameFormat, lpTranslatedName,
nSize);
1145 EXTENDED_NAME_FORMAT DesiredNameFormat,
LPWSTR lpTranslatedName,
1149 DesiredNameFormat, lpTranslatedName,
nSize);
static unsigned char bytes[4]
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define RegCloseKey(hKey)
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
NTSTATUS WINAPI LsaOpenPolicy(IN PLSA_UNICODE_STRING SystemName OPTIONAL, IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes, IN ACCESS_MASK DesiredAccess, OUT PLSA_HANDLE PolicyHandle)
ULONG WINAPI LsaNtStatusToWinError(IN NTSTATUS Status)
NTSTATUS WINAPI LsaQueryInformationPolicy(IN LSA_HANDLE PolicyHandle, IN POLICY_INFORMATION_CLASS InformationClass, OUT PVOID *Buffer)
NTSTATUS WINAPI LsaFreeMemory(IN PVOID Buffer)
NTSTATUS WINAPI LsaClose(IN LSA_HANDLE ObjectHandle)
BOOL WINAPI GetUserNameW(LPWSTR lpszName, LPDWORD lpSize)
#define ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
static const WCHAR sizeW[]
void SECUR32_initNegotiateSP(void)
void SECUR32_initNTLMSP(void)
GLuint GLuint GLsizei GLenum type
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
void SECUR32_initKerberosSP(void)
static const SecPkgInfoW infoW
static const SecPkgInfoA infoA
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
static struct msdos_boot_sector bs
#define memcpy(s1, s2, n)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
@ PolicyDnsDomainInformation
#define POLICY_VIEW_LOCAL_INFORMATION
struct _SecPkgInfoW SecPkgInfoW
#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION
struct _SecPkgInfoA SecPkgInfoA
struct _SECURITY_FUNCTION_TABLE_A SecurityFunctionTableA
PSecurityFunctionTableW(SEC_ENTRY * INIT_SECURITY_INTERFACE_W)(void)
PSecurityFunctionTableA(SEC_ENTRY * INIT_SECURITY_INTERFACE_A)(void)
#define SECURITY_ENTRYPOINT_ANSIA
struct _SECURITY_FUNCTION_TABLE_W SecurityFunctionTableW
#define SECURITY_ENTRYPOINT_ANSIW
void SECUR32_deinitSchannelSP(void)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
static LPSTR lpNameBuffer
static SecurePackageTable * packageTable
static void _copyPackageInfo(PSecPkgInfoW info, const SecPkgInfoA *inInfoA, const SecPkgInfoW *inInfoW)
BOOLEAN WINAPI TranslateNameA(LPCSTR lpAccountName, EXTENDED_NAME_FORMAT AccountNameFormat, EXTENDED_NAME_FORMAT DesiredNameFormat, LPSTR lpTranslatedName, PULONG nSize)
struct _SecureProviderTable SecureProviderTable
static PWSTR SECUR32_strdupW(PCWSTR str)
void SECUR32_addPackages(SecureProvider *provider, ULONG toAdd, const SecPkgInfoA *infoA, const SecPkgInfoW *infoW)
SecureProvider * SECUR32_addProvider(const SecurityFunctionTableA *fnTableA, const SecurityFunctionTableW *fnTableW, PCWSTR moduleName)
static SecurePackageTable * packageTable
static void _makeFnTableA(PSecurityFunctionTableA fnTableA, const SecurityFunctionTableA *inFnTableA, const SecurityFunctionTableW *inFnTableW)
static void _makeFnTableW(PSecurityFunctionTableW fnTableW, const SecurityFunctionTableA *inFnTableA, const SecurityFunctionTableW *inFnTableW)
static SecurityFunctionTableA securityFunctionTableA
void SECUR32_freeProviders(void)
static const WCHAR securityProvidersKeyW[]
static SecureProviderTable * providerTable
static void _tryLoadProvider(PWSTR moduleName)
SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG pcPackages, PSecPkgInfoW *ppPackageInfo)
BOOLEAN WINAPI GetComputerObjectNameA(EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG nSize)
static CRITICAL_SECTION cs
struct _SecurePackageTable SecurePackageTable
PSTR SECUR32_AllocMultiByteFromWide(PCWSTR str)
static CRITICAL_SECTION_DEBUG cs_debug
PSecurityFunctionTableA WINAPI InitSecurityInterfaceA(void)
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID pv)
SecurePackage * SECUR32_findPackageA(PCSTR packageName)
BOOLEAN WINAPI TranslateNameW(LPCWSTR lpAccountName, EXTENDED_NAME_FORMAT AccountNameFormat, EXTENDED_NAME_FORMAT DesiredNameFormat, LPWSTR lpTranslatedName, PULONG nSize)
SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG pcPackages, PSecPkgInfoA *ppPackageInfo)
static PSecPkgInfoA thunk_PSecPkgInfoWToA(ULONG cPackages, const SecPkgInfoW *info)
PWSTR SECUR32_AllocWideFromMultiByte(PCSTR str)
static SecurityFunctionTableW securityFunctionTableW
static const WCHAR securityProvidersW[]
BOOLEAN WINAPI GetComputerObjectNameW(EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize)
static void SECUR32_initializeProviders(void)
static void _copyPackageInfo(PSecPkgInfoW info, const SecPkgInfoA *inInfoA, const SecPkgInfoW *inInfoW)
BOOLEAN WINAPI GetUserNameExA(EXTENDED_NAME_FORMAT NameFormat, LPSTR lpNameBuffer, PULONG nSize)
PSecurityFunctionTableW WINAPI InitSecurityInterfaceW(void)
SecurePackage * SECUR32_findPackageW(PCWSTR packageName)
BOOLEAN WINAPI GetUserNameExW(EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize)
LIST_ENTRY ProcessLocksList
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
FREE_CONTEXT_BUFFER_FN FreeContextBuffer
QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA
INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext
IMPORT_SECURITY_CONTEXT_FN_A ImportSecurityContextA
ENCRYPT_MESSAGE_FN EncryptMessage
VERIFY_SIGNATURE_FN VerifySignature
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
MAKE_SIGNATURE_FN MakeSignature
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
ADD_CREDENTIALS_FN_A AddCredentialsA
ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA
QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA
DECRYPT_MESSAGE_FN DecryptMessage
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
ENCRYPT_MESSAGE_FN EncryptMessage
VERIFY_SIGNATURE_FN VerifySignature
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext
QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW
ADD_CREDENTIALS_FN_W AddCredentialsW
SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW
ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW
DECRYPT_MESSAGE_FN DecryptMessage
FREE_CONTEXT_BUFFER_FN FreeContextBuffer
ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW
MAKE_SIGNATURE_FN MakeSignature
QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW
QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
SECURITY_STATUS SEC_ENTRY thunk_AddCredentialsW(PCredHandle hCredentials, SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialUse, void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument, PTimeStamp ptsExpiry)
SECURITY_STATUS SEC_ENTRY thunk_InitializeSecurityContextW(PCredHandle phCredential, PCtxtHandle phContext, SEC_WCHAR *pszTargetName, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry)
SECURITY_STATUS SEC_ENTRY thunk_ImportSecurityContextA(SEC_CHAR *pszPackage, PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext)
SECURITY_STATUS SEC_ENTRY thunk_SetContextAttributesA(PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer, ULONG cbBuffer)
SECURITY_STATUS SEC_ENTRY thunk_SetContextAttributesW(PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer, ULONG cbBuffer)
SECURITY_STATUS SEC_ENTRY thunk_AddCredentialsA(PCredHandle hCredentials, SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialUse, void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument, PTimeStamp ptsExpiry)
SECURITY_STATUS SEC_ENTRY thunk_AcquireCredentialsHandleW(SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialsUse, PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
SECURITY_STATUS SEC_ENTRY thunk_AcquireCredentialsHandleA(SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialsUse, PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
SECURITY_STATUS SEC_ENTRY thunk_QueryCredentialsAttributesA(PCredHandle phCredential, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS SEC_ENTRY thunk_QueryCredentialsAttributesW(PCredHandle phCredential, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS SEC_ENTRY thunk_QueryContextAttributesW(PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS SEC_ENTRY thunk_QueryContextAttributesA(PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS SEC_ENTRY thunk_InitializeSecurityContextA(PCredHandle phCredential, PCtxtHandle phContext, SEC_CHAR *pszTargetName, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry)
SECURITY_STATUS SEC_ENTRY thunk_ImportSecurityContextW(SEC_WCHAR *pszPackage, PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext)
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
*nSize LPSTR _Inout_ LPDWORD nSize
#define MAX_COMPUTERNAME_LENGTH
_In_ LPCSTR lpAccountName
#define ERROR_CANT_ACCESS_DOMAIN_INFO
#define SEC_E_INSUFFICIENT_MEMORY
#define ERROR_INTERNAL_ERROR
#define ERROR_NONE_MAPPED
#define HKEY_LOCAL_MACHINE
SECURITY_STATUS WINAPI EncryptMessage(PCtxtHandle phContext, ULONG fQOP, PSecBufferDesc pMessage, ULONG MessageSeqNo)
SECURITY_STATUS WINAPI MakeSignature(PCtxtHandle phContext, ULONG fQOP, PSecBufferDesc pMessage, ULONG MessageSeqNo)
SECURITY_STATUS WINAPI AcquireCredentialsHandleW(SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialsUse, PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
SECURITY_STATUS WINAPI ExportSecurityContext(PCtxtHandle phContext, ULONG fFlags, PSecBuffer pPackedContext, void **pToken)
SECURITY_STATUS WINAPI AddCredentialsW(PCredHandle hCredentials, SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialUse, void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument, PTimeStamp ptsExpiry)
SECURITY_STATUS WINAPI InitializeSecurityContextW(PCredHandle phCredential, PCtxtHandle phContext, SEC_WCHAR *pszTargetName, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry)
SECURITY_STATUS WINAPI CompleteAuthToken(PCtxtHandle phContext, PSecBufferDesc pToken)
SECURITY_STATUS WINAPI ImportSecurityContextA(SEC_CHAR *pszPackage, PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext)
SECURITY_STATUS WINAPI DecryptMessage(PCtxtHandle phContext, PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP)
SECURITY_STATUS WINAPI VerifySignature(PCtxtHandle phContext, PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP)
SECURITY_STATUS WINAPI QueryContextAttributesW(PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS WINAPI ApplyControlToken(PCtxtHandle phContext, PSecBufferDesc pInput)
SECURITY_STATUS WINAPI ImportSecurityContextW(SEC_WCHAR *pszPackage, PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext)
SECURITY_STATUS WINAPI QueryContextAttributesA(PCtxtHandle phContext, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS WINAPI AcceptSecurityContext(PCredHandle phCredential, PCtxtHandle phContext, PSecBufferDesc pInput, ULONG fContextReq, ULONG TargetDataRep, PCtxtHandle phNewContext, PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry)
SECURITY_STATUS WINAPI AcquireCredentialsHandleA(SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialsUse, PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
SECURITY_STATUS WINAPI QueryCredentialsAttributesA(PCredHandle phCredential, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS WINAPI InitializeSecurityContextA(PCredHandle phCredential, PCtxtHandle phContext, SEC_CHAR *pszTargetName, ULONG fContextReq, ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry)
SECURITY_STATUS WINAPI DeleteSecurityContext(PCtxtHandle phContext)
SECURITY_STATUS WINAPI QuerySecurityPackageInfoW(SEC_WCHAR *pszPackageName, PSecPkgInfoW *ppPackageInfo)
SECURITY_STATUS WINAPI ImpersonateSecurityContext(PCtxtHandle phContext)
SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle phCredential)
SECURITY_STATUS WINAPI QuerySecurityPackageInfoA(SEC_CHAR *pszPackageName, PSecPkgInfoA *ppPackageInfo)
SECURITY_STATUS WINAPI RevertSecurityContext(PCtxtHandle phContext)
SECURITY_STATUS WINAPI QuerySecurityContextToken(PCtxtHandle phContext, HANDLE *phToken)
SECURITY_STATUS WINAPI QueryCredentialsAttributesW(PCredHandle phCredential, ULONG ulAttribute, void *pBuffer)
SECURITY_STATUS WINAPI AddCredentialsA(PCredHandle hCredentials, SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialUse, void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument, PTimeStamp ptsExpiry)