1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Ellery Newcomer 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC core/sys/windows/_sspi.d) 9 */ 10 /// Automatically imported and edited from the druntime module 11 /// core.sys.windows.sspi for the auto-generated win32 package. 12 module win32.sspi; 13 //version (Windows): 14 @system: 15 16 version (ANSI) {} else version = Unicode; 17 18 import win32.windef; 19 import win32.ntdef; 20 import win32.w32api; 21 import win32.security; 22 import win32.ntsecapi; 23 import win32.subauth; 24 25 enum :ULONG{ 26 SECPKG_CRED_INBOUND = 1, 27 SECPKG_CRED_OUTBOUND = 2, 28 SECPKG_CRED_BOTH = (SECPKG_CRED_OUTBOUND|SECPKG_CRED_INBOUND), 29 SECPKG_CRED_ATTR_NAMES = 1, 30 } 31 32 enum :ULONG{ 33 SECPKG_FLAG_INTEGRITY = 1, 34 SECPKG_FLAG_PRIVACY = 2, 35 SECPKG_FLAG_TOKEN_ONLY = 4, 36 SECPKG_FLAG_DATAGRAM = 8, 37 SECPKG_FLAG_CONNECTION = 16, 38 SECPKG_FLAG_MULTI_REQUIRED = 32, 39 SECPKG_FLAG_CLIENT_ONLY = 64, 40 SECPKG_FLAG_EXTENDED_ERROR = 128, 41 SECPKG_FLAG_IMPERSONATION = 256, 42 SECPKG_FLAG_ACCEPT_WIN32_NAME = 512, 43 SECPKG_FLAG_STREAM = 1024, 44 } 45 46 enum :ULONG{ 47 SECPKG_ATTR_AUTHORITY = 6, 48 SECPKG_ATTR_CONNECTION_INFO = 90, 49 SECPKG_ATTR_ISSUER_LIST = 80, 50 SECPKG_ATTR_ISSUER_LIST_EX = 89, 51 SECPKG_ATTR_KEY_INFO = 5, 52 SECPKG_ATTR_LIFESPAN = 2, 53 SECPKG_ATTR_LOCAL_CERT_CONTEXT = 84, 54 SECPKG_ATTR_LOCAL_CRED = 82, 55 SECPKG_ATTR_NAMES = 1, 56 SECPKG_ATTR_PROTO_INFO = 7, 57 SECPKG_ATTR_REMOTE_CERT_CONTEXT = 83, 58 SECPKG_ATTR_REMOTE_CRED = 81, 59 SECPKG_ATTR_SIZES = 0, 60 SECPKG_ATTR_STREAM_SIZES = 4, 61 } 62 63 enum :ULONG{ 64 SECBUFFER_EMPTY = 0, 65 SECBUFFER_DATA = 1, 66 SECBUFFER_TOKEN = 2, 67 SECBUFFER_PKG_PARAMS = 3, 68 SECBUFFER_MISSING = 4, 69 SECBUFFER_EXTRA = 5, 70 SECBUFFER_STREAM_TRAILER = 6, 71 SECBUFFER_STREAM_HEADER = 7, 72 SECBUFFER_PADDING = 9, 73 SECBUFFER_STREAM = 10, 74 SECBUFFER_READONLY = 0x80000000, 75 SECBUFFER_ATTRMASK = 0xf0000000, 76 } 77 78 enum UNISP_NAME_A = "Microsoft Unified Security Protocol Provider"; 79 enum UNISP_NAME_W = "Microsoft Unified Security Protocol Provider"w; 80 enum SECBUFFER_VERSION = 0; 81 82 alias UNICODE_STRING SECURITY_STRING; 83 alias UNICODE_STRING* PSECURITY_STRING; 84 85 extern(Windows): 86 87 struct SecHandle { 88 ULONG_PTR dwLower; 89 ULONG_PTR dwUpper; 90 } 91 alias SecHandle* PSecHandle; 92 struct SecBuffer { 93 ULONG cbBuffer; 94 ULONG BufferType; 95 PVOID pvBuffer; 96 } 97 alias SecBuffer* PSecBuffer; 98 alias SecHandle CredHandle; 99 alias PSecHandle PCredHandle; 100 alias SecHandle CtxtHandle; 101 alias PSecHandle PCtxtHandle; 102 struct SECURITY_INTEGER { 103 uint LowPart; 104 int HighPart; 105 } 106 alias SECURITY_INTEGER TimeStamp; 107 alias SECURITY_INTEGER* PTimeStamp; 108 struct SecBufferDesc { 109 ULONG ulVersion; 110 ULONG cBuffers; 111 PSecBuffer pBuffers; 112 } 113 alias SecBufferDesc* PSecBufferDesc; 114 struct SecPkgContext_StreamSizes { 115 ULONG cbHeader; 116 ULONG cbTrailer; 117 ULONG cbMaximumMessage; 118 ULONG cBuffers; 119 ULONG cbBlockSize; 120 } 121 alias SecPkgContext_StreamSizes* PSecPkgContext_StreamSizes; 122 struct SecPkgContext_Sizes { 123 ULONG cbMaxToken; 124 ULONG cbMaxSignature; 125 ULONG cbBlockSize; 126 ULONG cbSecurityTrailer; 127 } 128 alias SecPkgContext_Sizes* PSecPkgContext_Sizes; 129 struct SecPkgContext_AuthorityW { 130 SEC_WCHAR* sAuthorityName; 131 } 132 alias SecPkgContext_AuthorityW* PSecPkgContext_AuthorityW; 133 struct SecPkgContext_AuthorityA { 134 SEC_CHAR* sAuthorityName; 135 } 136 alias SecPkgContext_AuthorityA* PSecPkgContext_AuthorityA; 137 struct SecPkgContext_KeyInfoW { 138 SEC_WCHAR* sSignatureAlgorithmName; 139 SEC_WCHAR* sEncryptAlgorithmName; 140 ULONG KeySize; 141 ULONG SignatureAlgorithm; 142 ULONG EncryptAlgorithm; 143 } 144 alias SecPkgContext_KeyInfoW* PSecPkgContext_KeyInfoW; 145 struct SecPkgContext_KeyInfoA { 146 SEC_CHAR* sSignatureAlgorithmName; 147 SEC_CHAR* sEncryptAlgorithmName; 148 ULONG KeySize; 149 ULONG SignatureAlgorithm; 150 ULONG EncryptAlgorithm; 151 } 152 alias SecPkgContext_KeyInfoA* PSecPkgContext_KeyInfoA; 153 struct SecPkgContext_LifeSpan { 154 TimeStamp tsStart; 155 TimeStamp tsExpiry; 156 } 157 alias SecPkgContext_LifeSpan* PSecPkgContext_LifeSpan; 158 struct SecPkgContext_NamesW { 159 SEC_WCHAR* sUserName; 160 } 161 alias SecPkgContext_NamesW* PSecPkgContext_NamesW; 162 struct SecPkgContext_NamesA { 163 SEC_CHAR* sUserName; 164 } 165 alias SecPkgContext_NamesA* PSecPkgContext_NamesA; 166 struct SecPkgInfoW { 167 ULONG fCapabilities; 168 USHORT wVersion; 169 USHORT wRPCID; 170 ULONG cbMaxToken; 171 SEC_WCHAR* Name; 172 SEC_WCHAR* Comment; 173 } 174 alias SecPkgInfoW* PSecPkgInfoW; 175 struct SecPkgInfoA { 176 ULONG fCapabilities; 177 USHORT wVersion; 178 USHORT wRPCID; 179 ULONG cbMaxToken; 180 SEC_CHAR* Name; 181 SEC_CHAR* Comment; 182 } 183 alias SecPkgInfoA* PSecPkgInfoA; 184 /* supported only in win2k+, so it should be a PSecPkgInfoW */ 185 /* PSDK does not say it has ANSI/Unicode versions */ 186 struct SecPkgContext_PackageInfo { 187 PSecPkgInfoW PackageInfo; 188 } 189 alias SecPkgContext_PackageInfo* PSecPkgContext_PackageInfo; 190 struct SecPkgCredentials_NamesW { 191 SEC_WCHAR* sUserName; 192 } 193 alias SecPkgCredentials_NamesW* PSecPkgCredentials_NamesW; 194 struct SecPkgCredentials_NamesA { 195 SEC_CHAR* sUserName; 196 } 197 alias SecPkgCredentials_NamesA* PSecPkgCredentials_NamesA; 198 199 /* TODO: missing type in SDK */ 200 alias void function() SEC_GET_KEY_FN; 201 202 alias SECURITY_STATUS function(PULONG,PSecPkgInfoW*) ENUMERATE_SECURITY_PACKAGES_FN_W; 203 alias SECURITY_STATUS function(PULONG,PSecPkgInfoA*) ENUMERATE_SECURITY_PACKAGES_FN_A; 204 alias SECURITY_STATUS function(PCredHandle,ULONG,PVOID) QUERY_CREDENTIALS_ATTRIBUTES_FN_W; 205 alias SECURITY_STATUS function(PCredHandle,ULONG,PVOID) QUERY_CREDENTIALS_ATTRIBUTES_FN_A; 206 alias SECURITY_STATUS function(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp) ACQUIRE_CREDENTIALS_HANDLE_FN_W; 207 alias SECURITY_STATUS function(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp) ACQUIRE_CREDENTIALS_HANDLE_FN_A; 208 alias SECURITY_STATUS function(PCredHandle) FREE_CREDENTIALS_HANDLE_FN; 209 alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) INITIALIZE_SECURITY_CONTEXT_FN_W; 210 alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) INITIALIZE_SECURITY_CONTEXT_FN_A; 211 alias SECURITY_STATUS function(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp) ACCEPT_SECURITY_CONTEXT_FN; 212 alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) COMPLETE_AUTH_TOKEN_FN; 213 alias SECURITY_STATUS function(PCtxtHandle) DELETE_SECURITY_CONTEXT_FN; 214 alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) APPLY_CONTROL_TOKEN_FN_W; 215 alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc) APPLY_CONTROL_TOKEN_FN_A; 216 alias SECURITY_STATUS function(PCtxtHandle,ULONG,PVOID) QUERY_CONTEXT_ATTRIBUTES_FN_A; 217 alias SECURITY_STATUS function(PCtxtHandle,ULONG,PVOID) QUERY_CONTEXT_ATTRIBUTES_FN_W; 218 alias SECURITY_STATUS function(PCtxtHandle) IMPERSONATE_SECURITY_CONTEXT_FN; 219 alias SECURITY_STATUS function(PCtxtHandle) REVERT_SECURITY_CONTEXT_FN; 220 alias SECURITY_STATUS function(PCtxtHandle,ULONG,PSecBufferDesc,ULONG) MAKE_SIGNATURE_FN; 221 alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc,ULONG,PULONG) VERIFY_SIGNATURE_FN; 222 alias SECURITY_STATUS function(PVOID) FREE_CONTEXT_BUFFER_FN; 223 alias SECURITY_STATUS function(SEC_CHAR*,PSecPkgInfoA*) QUERY_SECURITY_PACKAGE_INFO_FN_A; 224 alias SECURITY_STATUS function(PCtxtHandle,HANDLE*) QUERY_SECURITY_CONTEXT_TOKEN_FN; 225 alias SECURITY_STATUS function(SEC_WCHAR*,PSecPkgInfoW*) QUERY_SECURITY_PACKAGE_INFO_FN_W; 226 alias SECURITY_STATUS function(PCtxtHandle,ULONG,PSecBufferDesc,ULONG) ENCRYPT_MESSAGE_FN; 227 alias SECURITY_STATUS function(PCtxtHandle,PSecBufferDesc,ULONG,PULONG) DECRYPT_MESSAGE_FN; 228 229 /* No, it really is FreeCredentialsHandle, see the thread beginning 230 * http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a 231 * discovery discussion. */ 232 struct SecurityFunctionTableW{ 233 uint dwVersion; 234 ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW; 235 QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW; 236 ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW; 237 FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; 238 void* Reserved2; 239 INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW; 240 ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; 241 COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; 242 DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; 243 APPLY_CONTROL_TOKEN_FN_W ApplyControlTokenW; 244 QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW; 245 IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; 246 REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; 247 MAKE_SIGNATURE_FN MakeSignature; 248 VERIFY_SIGNATURE_FN VerifySignature; 249 FREE_CONTEXT_BUFFER_FN FreeContextBuffer; 250 QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW; 251 void* Reserved3; 252 void* Reserved4; 253 void* Reserved5; 254 void* Reserved6; 255 void* Reserved7; 256 void* Reserved8; 257 QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; 258 ENCRYPT_MESSAGE_FN EncryptMessage; 259 DECRYPT_MESSAGE_FN DecryptMessage; 260 } 261 alias SecurityFunctionTableW* PSecurityFunctionTableW; 262 struct SecurityFunctionTableA{ 263 uint dwVersion; 264 ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; 265 QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; 266 ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; 267 FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; 268 void* Reserved2; 269 INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; 270 ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; 271 COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; 272 DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; 273 APPLY_CONTROL_TOKEN_FN_A ApplyControlTokenA; 274 QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA; 275 IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; 276 REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; 277 MAKE_SIGNATURE_FN MakeSignature; 278 VERIFY_SIGNATURE_FN VerifySignature; 279 FREE_CONTEXT_BUFFER_FN FreeContextBuffer; 280 QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; 281 void* Reserved3; 282 void* Reserved4; 283 void* Unknown1; 284 void* Unknown2; 285 void* Unknown3; 286 void* Unknown4; 287 void* Unknown5; 288 ENCRYPT_MESSAGE_FN EncryptMessage; 289 DECRYPT_MESSAGE_FN DecryptMessage; 290 } 291 alias SecurityFunctionTableA* PSecurityFunctionTableA; 292 alias PSecurityFunctionTableA function() INIT_SECURITY_INTERFACE_A; 293 alias PSecurityFunctionTableW function() INIT_SECURITY_INTERFACE_W; 294 295 SECURITY_STATUS FreeCredentialsHandle(PCredHandle); 296 SECURITY_STATUS EnumerateSecurityPackagesA(PULONG,PSecPkgInfoA*); 297 SECURITY_STATUS EnumerateSecurityPackagesW(PULONG,PSecPkgInfoW*); 298 SECURITY_STATUS AcquireCredentialsHandleA(SEC_CHAR*,SEC_CHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); 299 SECURITY_STATUS AcquireCredentialsHandleW(SEC_WCHAR*,SEC_WCHAR*,ULONG,PLUID,PVOID,SEC_GET_KEY_FN,PVOID,PCredHandle,PTimeStamp); 300 SECURITY_STATUS AcceptSecurityContext(PCredHandle,PCtxtHandle,PSecBufferDesc,ULONG,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 301 SECURITY_STATUS InitializeSecurityContextA(PCredHandle,PCtxtHandle,SEC_CHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 302 SECURITY_STATUS InitializeSecurityContextW(PCredHandle,PCtxtHandle,SEC_WCHAR*,ULONG,ULONG,ULONG,PSecBufferDesc,ULONG,PCtxtHandle,PSecBufferDesc,PULONG,PTimeStamp); 303 SECURITY_STATUS FreeContextBuffer(PVOID); 304 SECURITY_STATUS QueryContextAttributesA(PCtxtHandle,ULONG,PVOID); 305 SECURITY_STATUS QueryContextAttributesW(PCtxtHandle,ULONG,PVOID); 306 SECURITY_STATUS QueryCredentialsAttributesA(PCredHandle,ULONG,PVOID); 307 SECURITY_STATUS QueryCredentialsAttributesW(PCredHandle,ULONG,PVOID); 308 static if (_WIN32_WINNT >= 0x500){ 309 SECURITY_STATUS QuerySecurityContextToken(PCtxtHandle,HANDLE*); 310 } 311 SECURITY_STATUS DecryptMessage(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); 312 SECURITY_STATUS EncryptMessage(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); 313 SECURITY_STATUS DeleteSecurityContext(PCtxtHandle); 314 SECURITY_STATUS CompleteAuthToken(PCtxtHandle,PSecBufferDesc); 315 SECURITY_STATUS ApplyControlTokenA(PCtxtHandle,PSecBufferDesc); 316 SECURITY_STATUS ApplyControlTokenW(PCtxtHandle,PSecBufferDesc); 317 SECURITY_STATUS ImpersonateSecurityContext(PCtxtHandle); 318 SECURITY_STATUS RevertSecurityContext(PCtxtHandle); 319 SECURITY_STATUS MakeSignature(PCtxtHandle,ULONG,PSecBufferDesc,ULONG); 320 SECURITY_STATUS VerifySignature(PCtxtHandle,PSecBufferDesc,ULONG,PULONG); 321 SECURITY_STATUS QuerySecurityPackageInfoA(SEC_CHAR*,PSecPkgInfoA*); 322 SECURITY_STATUS QuerySecurityPackageInfoW(SEC_WCHAR*,PSecPkgInfoW*); 323 PSecurityFunctionTableA InitSecurityInterfaceA(); 324 PSecurityFunctionTableW InitSecurityInterfaceW(); 325 326 version (Unicode) { 327 alias UNISP_NAME_W UNISP_NAME; 328 alias SecPkgInfoW SecPkgInfo; 329 alias PSecPkgInfoW PSecPkgInfo; 330 alias SecPkgCredentials_NamesW SecPkgCredentials_Names; 331 alias PSecPkgCredentials_NamesW PSecPkgCredentials_Names; 332 alias SecPkgContext_AuthorityW SecPkgContext_Authority; 333 alias PSecPkgContext_AuthorityW PSecPkgContext_Authority; 334 alias SecPkgContext_KeyInfoW SecPkgContext_KeyInfo; 335 alias PSecPkgContext_KeyInfoW PSecPkgContext_KeyInfo; 336 alias SecPkgContext_NamesW SecPkgContext_Names; 337 alias PSecPkgContext_NamesW PSecPkgContext_Names; 338 alias SecurityFunctionTableW SecurityFunctionTable; 339 alias PSecurityFunctionTableW PSecurityFunctionTable; 340 alias AcquireCredentialsHandleW AcquireCredentialsHandle; 341 alias EnumerateSecurityPackagesW EnumerateSecurityPackages; 342 alias InitializeSecurityContextW InitializeSecurityContext; 343 alias QueryContextAttributesW QueryContextAttributes; 344 alias QueryCredentialsAttributesW QueryCredentialsAttributes; 345 alias QuerySecurityPackageInfoW QuerySecurityPackageInfo; 346 alias ApplyControlTokenW ApplyControlToken; 347 alias ENUMERATE_SECURITY_PACKAGES_FN_W ENUMERATE_SECURITY_PACKAGES_FN; 348 alias QUERY_CREDENTIALS_ATTRIBUTES_FN_W QUERY_CREDENTIALS_ATTRIBUTES_FN; 349 alias ACQUIRE_CREDENTIALS_HANDLE_FN_W ACQUIRE_CREDENTIALS_HANDLE_FN; 350 alias INITIALIZE_SECURITY_CONTEXT_FN_W INITIALIZE_SECURITY_CONTEXT_FN; 351 alias APPLY_CONTROL_TOKEN_FN_W APPLY_CONTROL_TOKEN_FN; 352 alias QUERY_CONTEXT_ATTRIBUTES_FN_W QUERY_CONTEXT_ATTRIBUTES_FN; 353 alias QUERY_SECURITY_PACKAGE_INFO_FN_W QUERY_SECURITY_PACKAGE_INFO_FN; 354 alias INIT_SECURITY_INTERFACE_W INIT_SECURITY_INTERFACE; 355 }else{ 356 alias UNISP_NAME_A UNISP_NAME; 357 alias SecPkgInfoA SecPkgInfo; 358 alias PSecPkgInfoA PSecPkgInfo; 359 alias SecPkgCredentials_NamesA SecPkgCredentials_Names; 360 alias PSecPkgCredentials_NamesA PSecPkgCredentials_Names; 361 alias SecPkgContext_AuthorityA SecPkgContext_Authority; 362 alias PSecPkgContext_AuthorityA PSecPkgContext_Authority; 363 alias SecPkgContext_KeyInfoA SecPkgContext_KeyInfo; 364 alias PSecPkgContext_KeyInfoA PSecPkgContext_KeyInfo; 365 alias SecPkgContext_NamesA SecPkgContext_Names; 366 alias PSecPkgContext_NamesA PSecPkgContext_Names; 367 alias SecurityFunctionTableA SecurityFunctionTable; 368 alias PSecurityFunctionTableA PSecurityFunctionTable; 369 alias AcquireCredentialsHandleA AcquireCredentialsHandle; 370 alias EnumerateSecurityPackagesA EnumerateSecurityPackages; 371 alias InitializeSecurityContextA InitializeSecurityContext; 372 alias QueryContextAttributesA QueryContextAttributes; 373 alias QueryCredentialsAttributesA QueryCredentialsAttributes; 374 alias QuerySecurityPackageInfoA QuerySecurityPackageInfo; 375 alias ApplyControlTokenA ApplyControlToken; 376 alias ENUMERATE_SECURITY_PACKAGES_FN_A ENUMERATE_SECURITY_PACKAGES_FN; 377 alias QUERY_CREDENTIALS_ATTRIBUTES_FN_A QUERY_CREDENTIALS_ATTRIBUTES_FN; 378 alias ACQUIRE_CREDENTIALS_HANDLE_FN_A ACQUIRE_CREDENTIALS_HANDLE_FN; 379 alias INITIALIZE_SECURITY_CONTEXT_FN_A INITIALIZE_SECURITY_CONTEXT_FN; 380 alias APPLY_CONTROL_TOKEN_FN_A APPLY_CONTROL_TOKEN_FN; 381 alias QUERY_CONTEXT_ATTRIBUTES_FN_A QUERY_CONTEXT_ATTRIBUTES_FN; 382 alias QUERY_SECURITY_PACKAGE_INFO_FN_A QUERY_SECURITY_PACKAGE_INFO_FN; 383 alias INIT_SECURITY_INTERFACE_A INIT_SECURITY_INTERFACE; 384 } 385