4 #pragma GCC system_header
13 #define SECPKG_CRED_INBOUND 1
14 #define SECPKG_CRED_OUTBOUND 2
15 #define SECPKG_CRED_BOTH (SECPKG_CRED_OUTBOUND|SECPKG_CRED_INBOUND)
16 #define SECPKG_CRED_ATTR_NAMES 1
18 #define SECPKG_FLAG_INTEGRITY 1
19 #define SECPKG_FLAG_PRIVACY 2
20 #define SECPKG_FLAG_TOKEN_ONLY 4
21 #define SECPKG_FLAG_DATAGRAM 8
22 #define SECPKG_FLAG_CONNECTION 16
23 #define SECPKG_FLAG_MULTI_REQUIRED 32
24 #define SECPKG_FLAG_CLIENT_ONLY 64
25 #define SECPKG_FLAG_EXTENDED_ERROR 128
26 #define SECPKG_FLAG_IMPERSONATION 256
27 #define SECPKG_FLAG_ACCEPT_WIN32_NAME 512
28 #define SECPKG_FLAG_STREAM 1024
30 #define SECPKG_ATTR_AUTHORITY 6
31 #define SECPKG_ATTR_CONNECTION_INFO 90
32 #define SECPKG_ATTR_ISSUER_LIST 80
33 #define SECPKG_ATTR_ISSUER_LIST_EX 89
34 #define SECPKG_ATTR_KEY_INFO 5
35 #define SECPKG_ATTR_LIFESPAN 2
36 #define SECPKG_ATTR_LOCAL_CERT_CONTEXT 84
37 #define SECPKG_ATTR_LOCAL_CRED 82
38 #define SECPKG_ATTR_NAMES 1
39 #define SECPKG_ATTR_PROTO_INFO 7
40 #define SECPKG_ATTR_REMOTE_CERT_CONTEXT 83
41 #define SECPKG_ATTR_REMOTE_CRED 81
42 #define SECPKG_ATTR_SIZES 0
43 #define SECPKG_ATTR_STREAM_SIZES 4
45 #define SECBUFFER_EMPTY 0
46 #define SECBUFFER_DATA 1
47 #define SECBUFFER_TOKEN 2
48 #define SECBUFFER_PKG_PARAMS 3
49 #define SECBUFFER_MISSING 4
50 #define SECBUFFER_EXTRA 5
51 #define SECBUFFER_STREAM_TRAILER 6
52 #define SECBUFFER_STREAM_HEADER 7
53 #define SECBUFFER_PADDING 9
54 #define SECBUFFER_STREAM 10
55 #define SECBUFFER_READONLY 0x80000000
56 #define SECBUFFER_ATTRMASK 0xf0000000
58 #define UNISP_NAME_A "Microsoft Unified Security Protocol Provider"
59 #define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider"
60 #define SECBUFFER_VERSION 0
62 typedef UNICODE_STRING SECURITY_STRING
, *PSECURITY_STRING
;
64 typedef struct _SecHandle
{
67 } SecHandle
, *PSecHandle
;
68 typedef struct _SecBuffer
{
72 } SecBuffer
, *PSecBuffer
;
73 typedef SecHandle CredHandle
;
74 typedef PSecHandle PCredHandle
;
75 typedef SecHandle CtxtHandle
;
76 typedef PSecHandle PCtxtHandle
;
77 typedef struct _SECURITY_INTEGER
{
78 unsigned long LowPart
;
81 typedef SECURITY_INTEGER TimeStamp
, *PTimeStamp
;
82 typedef struct _SecBufferDesc
{
86 } SecBufferDesc
, *PSecBufferDesc
;
87 typedef struct _SecPkgContext_StreamSizes
{
90 ULONG cbMaximumMessage
;
93 } SecPkgContext_StreamSizes
, *PSecPkgContext_StreamSizes
;
94 typedef struct _SecPkgContext_Sizes
{
98 ULONG cbSecurityTrailer
;
99 } SecPkgContext_Sizes
, *PSecPkgContext_Sizes
;
100 typedef struct _SecPkgContext_AuthorityW
{
101 SEC_WCHAR
* sAuthorityName
;
102 } SecPkgContext_AuthorityW
, *PSecPkgContext_AuthorityW
;
103 typedef struct _SecPkgContext_AuthorityA
{
104 SEC_CHAR
* sAuthorityName
;
105 } SecPkgContext_AuthorityA
, *PSecPkgContext_AuthorityA
;
106 typedef struct _SecPkgContext_KeyInfoW
{
107 SEC_WCHAR
* sSignatureAlgorithmName
;
108 SEC_WCHAR
* sEncryptAlgorithmName
;
110 ULONG SignatureAlgorithm
;
111 ULONG EncryptAlgorithm
;
112 } SecPkgContext_KeyInfoW
, *PSecPkgContext_KeyInfoW
;
113 typedef struct _SecPkgContext_KeyInfoA
{
114 SEC_CHAR
* sSignatureAlgorithmName
;
115 SEC_CHAR
* sEncryptAlgorithmName
;
117 ULONG SignatureAlgorithm
;
118 ULONG EncryptAlgorithm
;
119 } SecPkgContext_KeyInfoA
, *PSecPkgContext_KeyInfoA
;
120 typedef struct _SecPkgContext_LifeSpan
{
123 } SecPkgContext_LifeSpan
, *PSecPkgContext_LifeSpan
;
124 typedef struct _SecPkgContext_NamesW
{
125 SEC_WCHAR
* sUserName
;
126 } SecPkgContext_NamesW
, *PSecPkgContext_NamesW
;
127 typedef struct _SecPkgContext_NamesA
{
129 } SecPkgContext_NamesA
, *PSecPkgContext_NamesA
;
130 typedef struct _SecPkgInfoW
{
137 } SecPkgInfoW
, *PSecPkgInfoW
;
138 typedef struct _SecPkgInfoA
{
145 } SecPkgInfoA
, *PSecPkgInfoA
;
146 /* supported only in win2k+, so it should be a PSecPkgInfoW */
147 /* PSDK does not say it has ANSI/Unicode versions */
148 typedef struct _SecPkgContext_PackageInfo
{
149 PSecPkgInfoW PackageInfo
;
150 } SecPkgContext_PackageInfo
, *PSecPkgContext_PackageInfo
;
151 typedef struct _SecPkgCredentials_NamesW
{
152 SEC_WCHAR
* sUserName
;
153 } SecPkgCredentials_NamesW
, *PSecPkgCredentials_NamesW
;
154 typedef struct _SecPkgCredentials_NamesA
{
156 } SecPkgCredentials_NamesA
, *PSecPkgCredentials_NamesA
;
158 /* TODO: missing type in SDK */
159 typedef void (*SEC_GET_KEY_FN
)();
161 typedef SECURITY_STATUS (WINAPI
*ENUMERATE_SECURITY_PACKAGES_FN_W
)(PULONG
,PSecPkgInfoW
*);
162 typedef SECURITY_STATUS (WINAPI
*ENUMERATE_SECURITY_PACKAGES_FN_A
)(PULONG
,PSecPkgInfoA
*);
163 typedef SECURITY_STATUS (WINAPI
*QUERY_CREDENTIALS_ATTRIBUTES_FN_W
)(PCredHandle
,ULONG
,PVOID
);
164 typedef SECURITY_STATUS (WINAPI
*QUERY_CREDENTIALS_ATTRIBUTES_FN_A
)(PCredHandle
,ULONG
,PVOID
);
165 typedef SECURITY_STATUS (WINAPI
*ACQUIRE_CREDENTIALS_HANDLE_FN_W
)(SEC_WCHAR
*,SEC_WCHAR
*,ULONG
,PLUID
,PVOID
,SEC_GET_KEY_FN
,PVOID
,PCredHandle
,PTimeStamp
);
166 typedef SECURITY_STATUS (WINAPI
*ACQUIRE_CREDENTIALS_HANDLE_FN_A
)(SEC_CHAR
*,SEC_CHAR
*,ULONG
,PLUID
,PVOID
,SEC_GET_KEY_FN
,PVOID
,PCredHandle
,PTimeStamp
);
167 typedef SECURITY_STATUS (WINAPI
*FREE_CREDENTIALS_HANDLE_FN
)(PCredHandle
);
168 typedef SECURITY_STATUS (WINAPI
*INITIALIZE_SECURITY_CONTEXT_FN_W
)(PCredHandle
,PCtxtHandle
,SEC_WCHAR
*,ULONG
,ULONG
,ULONG
,PSecBufferDesc
,ULONG
,PCtxtHandle
,PSecBufferDesc
,PULONG
,PTimeStamp
);
169 typedef SECURITY_STATUS (WINAPI
*INITIALIZE_SECURITY_CONTEXT_FN_A
)(PCredHandle
,PCtxtHandle
,SEC_CHAR
*,ULONG
,ULONG
,ULONG
,PSecBufferDesc
,ULONG
,PCtxtHandle
,PSecBufferDesc
,PULONG
,PTimeStamp
);
170 typedef SECURITY_STATUS (WINAPI
*ACCEPT_SECURITY_CONTEXT_FN
)(PCredHandle
,PCtxtHandle
,PSecBufferDesc
,ULONG
,ULONG
,PCtxtHandle
,PSecBufferDesc
,PULONG
,PTimeStamp
);
171 typedef SECURITY_STATUS (WINAPI
*COMPLETE_AUTH_TOKEN_FN
)(PCtxtHandle
,PSecBufferDesc
);
172 typedef SECURITY_STATUS (WINAPI
*DELETE_SECURITY_CONTEXT_FN
)(PCtxtHandle
);
173 typedef SECURITY_STATUS (WINAPI
*APPLY_CONTROL_TOKEN_FN_W
)(PCtxtHandle
,PSecBufferDesc
);
174 typedef SECURITY_STATUS (WINAPI
*APPLY_CONTROL_TOKEN_FN_A
)(PCtxtHandle
,PSecBufferDesc
);
175 typedef SECURITY_STATUS (WINAPI
*QUERY_CONTEXT_ATTRIBUTES_FN_A
)(PCtxtHandle
,ULONG
,PVOID
);
176 typedef SECURITY_STATUS (WINAPI
*QUERY_CONTEXT_ATTRIBUTES_FN_W
)(PCtxtHandle
,ULONG
,PVOID
);
177 typedef SECURITY_STATUS (WINAPI
*IMPERSONATE_SECURITY_CONTEXT_FN
)(PCtxtHandle
);
178 typedef SECURITY_STATUS (WINAPI
*REVERT_SECURITY_CONTEXT_FN
)(PCtxtHandle
);
179 typedef SECURITY_STATUS (WINAPI
*MAKE_SIGNATURE_FN
)(PCtxtHandle
,ULONG
,PSecBufferDesc
,ULONG
);
180 typedef SECURITY_STATUS (WINAPI
*VERIFY_SIGNATURE_FN
)(PCtxtHandle
,PSecBufferDesc
,ULONG
,PULONG
);
181 typedef SECURITY_STATUS (WINAPI
*FREE_CONTEXT_BUFFER_FN
)(PVOID
);
182 typedef SECURITY_STATUS (WINAPI
*QUERY_SECURITY_PACKAGE_INFO_FN_A
)(SEC_CHAR
*,PSecPkgInfoA
*);
183 typedef SECURITY_STATUS (WINAPI
*QUERY_SECURITY_CONTEXT_TOKEN_FN
)(PCtxtHandle
,HANDLE
*);
184 typedef SECURITY_STATUS (WINAPI
*QUERY_SECURITY_PACKAGE_INFO_FN_W
)(SEC_WCHAR
*,PSecPkgInfoW
*);
185 typedef SECURITY_STATUS (WINAPI
*ENCRYPT_MESSAGE_FN
)(PCtxtHandle
,ULONG
,PSecBufferDesc
,ULONG
);
186 typedef SECURITY_STATUS (WINAPI
*DECRYPT_MESSAGE_FN
)(PCtxtHandle
,PSecBufferDesc
,ULONG
,PULONG
);
188 /* No, it really is FreeCredentialsHandle, see the thread beginning
189 * http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a
190 * discovery discussion. */
191 typedef struct _SECURITY_FUNCTION_TABLEW
{
192 unsigned long dwVersion
;
193 ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW
;
194 QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW
;
195 ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW
;
196 FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle
;
197 void SEC_FAR
* Reserved2
;
198 INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW
;
199 ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
;
200 COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
;
201 DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
;
202 APPLY_CONTROL_TOKEN_FN_W ApplyControlTokenW
;
203 QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW
;
204 IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
;
205 REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
;
206 MAKE_SIGNATURE_FN MakeSignature
;
207 VERIFY_SIGNATURE_FN VerifySignature
;
208 FREE_CONTEXT_BUFFER_FN FreeContextBuffer
;
209 QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW
;
210 void SEC_FAR
* Reserved3
;
211 void SEC_FAR
* Reserved4
;
212 void SEC_FAR
* Reserved5
;
213 void SEC_FAR
* Reserved6
;
214 void SEC_FAR
* Reserved7
;
215 void SEC_FAR
* Reserved8
;
216 QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
;
217 ENCRYPT_MESSAGE_FN EncryptMessage
;
218 DECRYPT_MESSAGE_FN DecryptMessage
;
219 } SecurityFunctionTableW
, *PSecurityFunctionTableW
;
220 typedef struct _SECURITY_FUNCTION_TABLEA
{
221 unsigned long dwVersion
;
222 ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA
;
223 QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA
;
224 ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA
;
225 FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle
;
226 void SEC_FAR
* Reserved2
;
227 INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA
;
228 ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
;
229 COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
;
230 DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
;
231 APPLY_CONTROL_TOKEN_FN_A ApplyControlTokenA
;
232 QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA
;
233 IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
;
234 REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
;
235 MAKE_SIGNATURE_FN MakeSignature
;
236 VERIFY_SIGNATURE_FN VerifySignature
;
237 FREE_CONTEXT_BUFFER_FN FreeContextBuffer
;
238 QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA
;
239 void SEC_FAR
* Reserved3
;
240 void SEC_FAR
* Reserved4
;
241 void SEC_FAR
* Unknown1
;
242 void SEC_FAR
* Unknown2
;
243 void SEC_FAR
* Unknown3
;
244 void SEC_FAR
* Unknown4
;
245 void SEC_FAR
* Unknown5
;
246 ENCRYPT_MESSAGE_FN EncryptMessage
;
247 DECRYPT_MESSAGE_FN DecryptMessage
;
248 } SecurityFunctionTableA
, *PSecurityFunctionTableA
;
249 typedef PSecurityFunctionTableA (WINAPI
*INIT_SECURITY_INTERFACE_A
)(VOID
);
250 typedef PSecurityFunctionTableW (WINAPI
*INIT_SECURITY_INTERFACE_W
)(VOID
);
252 SECURITY_STATUS WINAPI
FreeCredentialsHandle(PCredHandle
);
253 SECURITY_STATUS WINAPI
EnumerateSecurityPackagesA(PULONG
,PSecPkgInfoA
*);
254 SECURITY_STATUS WINAPI
EnumerateSecurityPackagesW(PULONG
,PSecPkgInfoW
*);
255 SECURITY_STATUS WINAPI
AcquireCredentialsHandleA(SEC_CHAR
*,SEC_CHAR
*,ULONG
,PLUID
,PVOID
,SEC_GET_KEY_FN
,PVOID
,PCredHandle
,PTimeStamp
);
256 SECURITY_STATUS WINAPI
AcquireCredentialsHandleW(SEC_WCHAR
*,SEC_WCHAR
*,ULONG
,PLUID
,PVOID
,SEC_GET_KEY_FN
,PVOID
,PCredHandle
,PTimeStamp
);
257 SECURITY_STATUS WINAPI
AcceptSecurityContext(PCredHandle
,PCtxtHandle
,PSecBufferDesc
,ULONG
,ULONG
,PCtxtHandle
,PSecBufferDesc
,PULONG
,PTimeStamp
);
258 SECURITY_STATUS WINAPI
InitializeSecurityContextA(PCredHandle
,PCtxtHandle
,SEC_CHAR
*,ULONG
,ULONG
,ULONG
,PSecBufferDesc
,ULONG
,PCtxtHandle
,PSecBufferDesc
,PULONG
,PTimeStamp
);
259 SECURITY_STATUS WINAPI
InitializeSecurityContextW(PCredHandle
,PCtxtHandle
,SEC_WCHAR
*,ULONG
,ULONG
,ULONG
,PSecBufferDesc
,ULONG
,PCtxtHandle
,PSecBufferDesc
,PULONG
,PTimeStamp
);
260 SECURITY_STATUS WINAPI
FreeContextBuffer(PVOID
);
261 SECURITY_STATUS WINAPI
QueryContextAttributesA(PCtxtHandle
,ULONG
,PVOID
);
262 SECURITY_STATUS WINAPI
QueryContextAttributesW(PCtxtHandle
,ULONG
,PVOID
);
263 SECURITY_STATUS WINAPI
QueryCredentialsAttributesA(PCredHandle
,ULONG
,PVOID
);
264 SECURITY_STATUS WINAPI
QueryCredentialsAttributesW(PCredHandle
,ULONG
,PVOID
);
265 SECURITY_STATUS WINAPI
DecryptMessage(PCtxtHandle
,PSecBufferDesc
,ULONG
,PULONG
);
266 SECURITY_STATUS WINAPI
EncryptMessage(PCtxtHandle
,ULONG
,PSecBufferDesc
,ULONG
);
267 SECURITY_STATUS WINAPI
DeleteSecurityContext(PCtxtHandle
);
268 SECURITY_STATUS WINAPI
CompleteAuthToken(PCtxtHandle
,PSecBufferDesc
);
269 SECURITY_STATUS WINAPI
ApplyControlTokenA(PCtxtHandle
,PSecBufferDesc
);
270 SECURITY_STATUS WINAPI
ApplyControlTokenW(PCtxtHandle
,PSecBufferDesc
);
271 SECURITY_STATUS WINAPI
ImpersonateSecurityContext(PCtxtHandle
);
272 SECURITY_STATUS WINAPI
RevertSecurityContext(PCtxtHandle
);
273 SECURITY_STATUS WINAPI
MakeSignature(PCtxtHandle
,ULONG
,PSecBufferDesc
,ULONG
);
274 SECURITY_STATUS WINAPI
VerifySignature(PCtxtHandle
,PSecBufferDesc
,ULONG
,PULONG
);
275 SECURITY_STATUS WINAPI
QuerySecurityPackageInfoA(SEC_CHAR
*,PSecPkgInfoA
*);
276 SECURITY_STATUS WINAPI
QuerySecurityPackageInfoW(SEC_WCHAR
*,PSecPkgInfoW
*);
277 PSecurityFunctionTableA WINAPI
InitSecurityInterfaceA(VOID
);
278 PSecurityFunctionTableW WINAPI
InitSecurityInterfaceW(VOID
);
281 #define UNISP_NAME UNISP_NAME_W
282 #define SecPkgInfo SecPkgInfoW
283 #define PSecPkgInfo PSecPkgInfoW
284 #define SecPkgCredentials_Names SecPkgCredentials_NamesW
285 #define PSecPkgCredentials_Names PSecPkgCredentials_NamesW
286 #define SecPkgContext_Authority SecPkgContext_AuthorityW
287 #define PSecPkgContext_Authority PSecPkgContext_AuthorityW
288 #define SecPkgContext_KeyInfo SecPkgContext_KeyInfoW
289 #define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoW
290 #define SecPkgContext_Names SecPkgContext_NamesW
291 #define PSecPkgContext_Names PSecPkgContext_NamesW
292 #define SecurityFunctionTable SecurityFunctionTableW
293 #define PSecurityFunctionTable PSecurityFunctionTableW
294 #define AcquireCredentialsHandle AcquireCredentialsHandleW
295 #define EnumerateSecurityPackages EnumerateSecurityPackagesW
296 #define InitializeSecurityContext InitializeSecurityContextW
297 #define QueryContextAttributes QueryContextAttributesW
298 #define QueryCredentialsAttributes QueryCredentialsAttributesW
299 #define QuerySecurityPackageInfo QuerySecurityPackageInfoW
300 #define ApplyControlToken ApplyControlTokenW
301 #define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_W
302 #define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W
303 #define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_W
304 #define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_W
305 #define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_W
306 #define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W
307 #define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W
308 #define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_W
310 #define UNISP_NAME UNISP_NAME_A
311 #define SecPkgInfo SecPkgInfoA
312 #define PSecPkgInfo PSecPkgInfoA
313 #define SecPkgCredentials_Names SecPkgCredentials_NamesA
314 #define PSecPkgCredentials_Names PSecPkgCredentials_NamesA
315 #define SecPkgContext_Authority SecPkgContext_AuthorityA
316 #define PSecPkgContext_Authority PSecPkgContext_AuthorityA
317 #define SecPkgContext_KeyInfo SecPkgContext_KeyInfoA
318 #define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoA
319 #define SecPkgContext_Names SecPkgContext_NamesA
320 #define PSecPkgContext_Names PSecPkgContext_NamesA
321 #define SecurityFunctionTable SecurityFunctionTableA
322 #define PSecurityFunctionTable PSecurityFunctionTableA
323 #define AcquireCredentialsHandle AcquireCredentialsHandleA
324 #define EnumerateSecurityPackages EnumerateSecurityPackagesA
325 #define InitializeSecurityContext InitializeSecurityContextA
326 #define QueryContextAttributes QueryContextAttributesA
327 #define QueryCredentialsAttributes QueryCredentialsAttributesA
328 #define QuerySecurityPackageInfo QuerySecurityPackageInfoA
329 #define ApplyControlToken ApplyControlTokenA
330 #define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_A
331 #define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_A
332 #define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_A
333 #define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_A
334 #define APPLY_CONTROL_TOKEN_FN APPLY_CONTROL_TOKEN_FN_A
335 #define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_A
336 #define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_A
337 #define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_A