4 #pragma GCC system_header
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
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
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
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
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
60 typedef struct _SecHandle
{
63 } SecHandle
, *PSecHandle
;
64 typedef struct _SecBuffer
{
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
;
77 typedef SECURITY_INTEGER TimeStamp
, *PTimeStamp
;
78 typedef struct _SecBufferDesc
{
82 } SecBufferDesc
, *PSecBufferDesc
;
83 typedef struct _SecPkgContext_StreamSizes
{
86 ULONG cbMaximumMessage
;
89 } SecPkgContext_StreamSizes
, *PSecPkgContext_StreamSizes
;
90 typedef struct _SecPkgContext_Sizes
{
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
;
106 ULONG SignatureAlgorithm
;
107 ULONG EncryptAlgorithm
;
108 } SecPkgContext_KeyInfoW
, *PSecPkgContext_KeyInfoW
;
109 typedef struct _SecPkgContext_KeyInfoA
{
110 SEC_CHAR
* sSignatureAlgorithmName
;
111 SEC_CHAR
* sEncryptAlgorithmName
;
113 ULONG SignatureAlgorithm
;
114 ULONG EncryptAlgorithm
;
115 } SecPkgContext_KeyInfoA
, *PSecPkgContext_KeyInfoA
;
116 typedef struct _SecPkgContext_LifeSpan
{
119 } SecPkgContext_LifeSpan
, *PSecPkgContext_LifeSpan
;
120 typedef struct _SecPkgContext_NamesW
{
121 SEC_WCHAR
* sUserName
;
122 } SecPkgContext_NamesW
, *PSecPkgContext_NamesW
;
123 typedef struct _SecPkgContext_NamesA
{
125 } SecPkgContext_NamesA
, *PSecPkgContext_NamesA
;
126 typedef struct _SecPkgInfoW
{
133 } SecPkgInfoW
, *PSecPkgInfoW
;
134 typedef struct _SecPkgInfoA
{
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 } SecPkgCredentials_NamesW
, *PSecPkgCredentials_NamesW
;
150 typedef struct _SecPkgCredentials_NamesA
{
152 } SecPkgCredentials_NamesA
, *PSecPkgCredentials_NamesA
;
154 /* TODO: missing type in SDK */
155 typedef void (*SEC_GET_KEY_FN
)();
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
);
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
);
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
);
276 #define UNISP_NAME UNISP_NAME_W
277 #define SecPkgInfo SecPkgInfoW
278 #define PSecPkgInfo PSecPkgInfoW
279 #define SecPkgCredentials_Names SecPkgCredentials_NamesW
280 #define PSecPkgCredentials_Names PSecPkgCredentials_NamesW
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
305 #define UNISP_NAME UNISP_NAME_A
306 #define SecPkgInfo SecPkgInfoA
307 #define PSecPkgInfo PSecPkgInfoA
308 #define SecPkgCredentials_Names SecPkgCredentials_NamesA
309 #define PSecPkgCredentials_Names PSecPkgCredentials_NamesA
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