source: Daodan/MinGW/include/sspi.h@ 1070

Last change on this file since 1070 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

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