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