home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / sspi.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  16KB  |  339 lines

  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. } SecPkgCredentials_NamesW, *PSecPkgCredentials_NamesW;
  150. typedef struct _SecPkgCredentials_NamesA {
  151.     SEC_CHAR* sUserName;
  152. } SecPkgCredentials_NamesA, *PSecPkgCredentials_NamesA;
  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 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
  304. #else
  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
  333. #endif
  334.  
  335. #ifdef __cplusplus
  336. }
  337. #endif
  338. #endif
  339.