Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygensspi.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2004 Juan Lang 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 #ifndef __WINE_SSPI_H__ 00019 #define __WINE_SSPI_H__ 00020 00021 #include <wtypes.h> 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 #define SEC_ENTRY WINAPI 00028 00029 typedef WCHAR SEC_WCHAR; 00030 typedef CHAR SEC_CHAR; 00031 00032 #ifndef __SECSTATUS_DEFINED__ 00033 #define __SECSTATUS_DEFINED__ 00034 typedef LONG SECURITY_STATUS; 00035 #endif 00036 00037 #define UNISP_NAME_A "Microsoft Unified Security Protocol Provider" 00038 #define UNISP_NAME_W L"Microsoft Unified Security Protocol Provider" 00039 #define UNISP_NAME WINELIB_NAME_AW(UNISP_NAME_) 00040 00041 #ifdef UNICODE 00042 typedef SEC_WCHAR * SECURITY_PSTR; 00043 typedef CONST SEC_WCHAR * SECURITY_PCSTR; 00044 #else 00045 typedef SEC_CHAR * SECURITY_PSTR; 00046 typedef CONST SEC_CHAR * SECURITY_PCSTR; 00047 #endif 00048 00049 #ifndef __SECHANDLE_DEFINED__ 00050 #define __SECHANDLE_DEFINED__ 00051 typedef struct _SecHandle 00052 { 00053 ULONG_PTR dwLower; 00054 ULONG_PTR dwUpper; 00055 } SecHandle, *PSecHandle; 00056 #endif 00057 00058 #define SecInvalidateHandle(x) do { \ 00059 ((PSecHandle)(x))->dwLower = ((ULONG_PTR)((INT_PTR)-1)); \ 00060 ((PSecHandle)(x))->dwUpper = ((ULONG_PTR)((INT_PTR)-1)); \ 00061 } while (0) 00062 00063 #define SecIsValidHandle(x) \ 00064 ((((PSecHandle)(x))->dwLower != ((ULONG_PTR)(INT_PTR)-1)) && \ 00065 (((PSecHandle)(x))->dwUpper != ((ULONG_PTR)(INT_PTR)-1))) 00066 00067 typedef SecHandle CredHandle; 00068 typedef PSecHandle PCredHandle; 00069 00070 typedef SecHandle CtxtHandle; 00071 typedef PSecHandle PCtxtHandle; 00072 00073 typedef struct _SECURITY_INTEGER 00074 { 00075 ULONG LowPart; 00076 LONG HighPart; 00077 } SECURITY_INTEGER, *PSECURITY_INTEGER; 00078 typedef SECURITY_INTEGER TimeStamp, *PTimeStamp; 00079 00080 typedef struct _SecPkgInfoA 00081 { 00082 ULONG fCapabilities; 00083 unsigned short wVersion; 00084 unsigned short wRPCID; 00085 ULONG cbMaxToken; 00086 SEC_CHAR *Name; 00087 SEC_CHAR *Comment; 00088 } SecPkgInfoA, *PSecPkgInfoA; 00089 00090 typedef struct _SecPkgInfoW 00091 { 00092 ULONG fCapabilities; 00093 unsigned short wVersion; 00094 unsigned short wRPCID; 00095 ULONG cbMaxToken; 00096 SEC_WCHAR *Name; 00097 SEC_WCHAR *Comment; 00098 } SecPkgInfoW, *PSecPkgInfoW; 00099 00100 #define SecPkgInfo WINELIB_NAME_AW(SecPkgInfo) 00101 #define PSecPkgInfo WINELIB_NAME_AW(PSecPkgInfo) 00102 00103 /* fCapabilities field of SecPkgInfo */ 00104 #define SECPKG_FLAG_INTEGRITY 0x00000001 00105 #define SECPKG_FLAG_PRIVACY 0x00000002 00106 #define SECPKG_FLAG_TOKEN_ONLY 0x00000004 00107 #define SECPKG_FLAG_DATAGRAM 0x00000008 00108 #define SECPKG_FLAG_CONNECTION 0x00000010 00109 #define SECPKG_FLAG_MULTI_REQUIRED 0x00000020 00110 #define SECPKG_FLAG_CLIENT_ONLY 0x00000040 00111 #define SECPKG_FLAG_EXTENDED_ERROR 0x00000080 00112 #define SECPKG_FLAG_IMPERSONATION 0x00000100 00113 #define SECPKG_FLAG_ACCEPT_WIN32_NAME 0x00000200 00114 #define SECPKG_FLAG_STREAM 0x00000400 00115 #define SECPKG_FLAG_NEGOTIABLE 0x00000800 00116 #define SECPKG_FLAG_GSS_COMPATIBLE 0x00001000 00117 #define SECPKG_FLAG_LOGON 0x00002000 00118 #define SECPKG_FLAG_ASCII_BUFFERS 0x00004000 00119 #define SECPKG_FLAG_FRAGMENT 0x00008000 00120 #define SECPKG_FLAG_MUTUAL_AUTH 0x00010000 00121 #define SECPKG_FLAG_DELEGATION 0x00020000 00122 #define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000 00123 00124 typedef struct _SecBuffer 00125 { 00126 ULONG cbBuffer; 00127 ULONG BufferType; 00128 void *pvBuffer; 00129 } SecBuffer, *PSecBuffer; 00130 00131 /* values for BufferType */ 00132 #define SECBUFFER_EMPTY 0 00133 #define SECBUFFER_DATA 1 00134 #define SECBUFFER_TOKEN 2 00135 #define SECBUFFER_PKG_PARAMS 3 00136 #define SECBUFFER_MISSING 4 00137 #define SECBUFFER_EXTRA 5 00138 #define SECBUFFER_STREAM_TRAILER 6 00139 #define SECBUFFER_STREAM_HEADER 7 00140 #define SECBUFFER_NEGOTIATION_INFO 8 00141 #define SECBUFFER_PADDING 9 00142 #define SECBUFFER_STREAM 10 00143 #define SECBUFFER_MECHLIST 11 00144 #define SECBUFFER_MECHLIST_SIGNATURE 12 00145 #define SECBUFFER_TARGET 13 00146 #define SECBUFFER_CHANNEL_BINDINGS 14 00147 00148 #define SECBUFFER_ATTRMASK 0xf0000000 00149 #define SECBUFFER_READONLY 0x80000000 00150 #define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000 00151 #define SECBUFFER_RESERVED 0x60000000 00152 00153 typedef struct _SecBufferDesc 00154 { 00155 ULONG ulVersion; 00156 ULONG cBuffers; 00157 PSecBuffer pBuffers; 00158 } SecBufferDesc, *PSecBufferDesc; 00159 00160 /* values for ulVersion */ 00161 #define SECBUFFER_VERSION 0 00162 00163 typedef void (SEC_ENTRY *SEC_GET_KEY_FN)(void *Arg, void *Principal, 00164 ULONG KeyVer, void **Key, SECURITY_STATUS *Status); 00165 00166 SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesA(PULONG pcPackages, 00167 PSecPkgInfoA *ppPackageInfo); 00168 SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(PULONG pcPackages, 00169 PSecPkgInfoW *ppPackageInfo); 00170 #define EnumerateSecurityPackages WINELIB_NAME_AW(EnumerateSecurityPackages) 00171 00172 typedef SECURITY_STATUS (SEC_ENTRY *ENUMERATE_SECURITY_PACKAGES_FN_A)(PULONG, 00173 PSecPkgInfoA *); 00174 typedef SECURITY_STATUS (SEC_ENTRY *ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG, 00175 PSecPkgInfoW *); 00176 #define ENUMERATE_SECURITY_PACKAGES_FN WINELIB_NAME_AW(ENUMERATE_SECURITY_PACKAGES_FN_) 00177 00178 SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesA( 00179 PCredHandle phCredential, ULONG ulAttribute, void *pBuffer); 00180 SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW( 00181 PCredHandle phCredential, ULONG ulAttribute, void *pBuffer); 00182 #define QueryCredentialsAttributes WINELIB_NAME_AW(QueryCredentialsAttributes) 00183 00184 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_CREDENTIALS_ATTRIBUTES_FN_A) 00185 (PCredHandle, ULONG, PVOID); 00186 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_CREDENTIALS_ATTRIBUTES_FN_W) 00187 (PCredHandle, ULONG, PVOID); 00188 #define QUERY_CREDENTIALS_ATTRIBUTES_FN WINELIB_NAME_AW(QUERY_CREDENTIALS_ATTRIBUTES_FN_) 00189 00190 /* values for QueryCredentialsAttributes ulAttribute */ 00191 #define SECPKG_CRED_ATTR_NAMES 1 00192 00193 /* types for QueryCredentialsAttributes */ 00194 typedef struct _SecPkgCredentials_NamesA 00195 { 00196 SEC_CHAR *sUserName; 00197 } SecPkgCredentials_NamesA, *PSecPkgCredentials_NamesA; 00198 00199 typedef struct _SecPkgCredentials_NamesW 00200 { 00201 SEC_WCHAR *sUserName; 00202 } SecPkgCredentials_NamesW, *PSecPkgCredentials_NamesW; 00203 00204 #define SecPkgCredentials_Names WINELIB_NAME_AW(SecPkgCredentials_Names) 00205 00206 SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleA( 00207 SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialsUse, 00208 PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, 00209 PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry); 00210 SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleW( 00211 SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialsUse, 00212 PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, 00213 PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry); 00214 #define AcquireCredentialsHandle WINELIB_NAME_AW(AcquireCredentialsHandle) 00215 00216 /* flags for fCredentialsUse */ 00217 #define SECPKG_CRED_INBOUND 0x00000001 00218 #define SECPKG_CRED_OUTBOUND 0x00000002 00219 #define SECPKG_CRED_BOTH (SECPKG_CRED_INBOUND | SECPKG_CRED_OUTBOUND) 00220 #define SECPKG_CRED_DEFAULT 0x00000004 00221 #define SECPKG_CRED_RESERVED 0xf0000000 00222 00223 typedef SECURITY_STATUS (SEC_ENTRY *ACQUIRE_CREDENTIALS_HANDLE_FN_A)( 00224 SEC_CHAR *, SEC_CHAR *, ULONG, PLUID, PVOID, SEC_GET_KEY_FN, PVOID, 00225 PCredHandle, PTimeStamp); 00226 typedef SECURITY_STATUS (SEC_ENTRY *ACQUIRE_CREDENTIALS_HANDLE_FN_W)( 00227 SEC_WCHAR *, SEC_WCHAR *, ULONG, PLUID, PVOID, SEC_GET_KEY_FN, PVOID, 00228 PCredHandle, PTimeStamp); 00229 #define ACQUIRE_CREDENTIALS_HANDLE_FN WINELIB_NAME_AW(ACQUIRE_CREDENTIALS_HANDLE_FN_) 00230 00231 SECURITY_STATUS SEC_ENTRY FreeContextBuffer(PVOID pv); 00232 00233 typedef SECURITY_STATUS (SEC_ENTRY *FREE_CONTEXT_BUFFER_FN)(PVOID); 00234 00235 SECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(PCredHandle 00236 phCredential); 00237 00238 #define FreeCredentialHandle FreeCredentialsHandle 00239 00240 typedef SECURITY_STATUS (SEC_ENTRY *FREE_CREDENTIALS_HANDLE_FN)(PCredHandle); 00241 00242 SECURITY_STATUS SEC_ENTRY InitializeSecurityContextA( 00243 PCredHandle phCredential, PCtxtHandle phContext, 00244 SEC_CHAR *pszTargetName, ULONG fContextReq, 00245 ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, 00246 ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, 00247 ULONG *pfContextAttr, PTimeStamp ptsExpiry); 00248 SECURITY_STATUS SEC_ENTRY InitializeSecurityContextW( 00249 PCredHandle phCredential, PCtxtHandle phContext, 00250 SEC_WCHAR *pszTargetName, ULONG fContextReq, 00251 ULONG Reserved1, ULONG TargetDataRep, PSecBufferDesc pInput, 00252 ULONG Reserved2, PCtxtHandle phNewContext, PSecBufferDesc pOutput, 00253 ULONG *pfContextAttr, PTimeStamp ptsExpiry); 00254 #define InitializeSecurityContext WINELIB_NAME_AW(InitializeSecurityContext) 00255 00256 typedef SECURITY_STATUS (SEC_ENTRY *INITIALIZE_SECURITY_CONTEXT_FN_A) 00257 (PCredHandle, PCtxtHandle, SEC_CHAR *, ULONG, ULONG, 00258 ULONG, PSecBufferDesc, ULONG, PCtxtHandle, PSecBufferDesc, 00259 ULONG *, PTimeStamp); 00260 typedef SECURITY_STATUS (SEC_ENTRY *INITIALIZE_SECURITY_CONTEXT_FN_W) 00261 (PCredHandle, PCtxtHandle, SEC_WCHAR *, ULONG, ULONG, 00262 ULONG, PSecBufferDesc, ULONG, PCtxtHandle, PSecBufferDesc, 00263 ULONG *, PTimeStamp); 00264 #define INITIALIZE_SECURITY_CONTEXT_FN WINELIB_NAME_AW(INITIALIZE_SECURITY_CONTEXT_FN_) 00265 00266 /* flags for InitializeSecurityContext fContextReq and pfContextAttr */ 00267 #define ISC_REQ_DELEGATE 0x00000001 00268 #define ISC_REQ_MUTUAL_AUTH 0x00000002 00269 #define ISC_REQ_REPLAY_DETECT 0x00000004 00270 #define ISC_REQ_SEQUENCE_DETECT 0x00000008 00271 #define ISC_REQ_CONFIDENTIALITY 0x00000010 00272 #define ISC_REQ_USE_SESSION_KEY 0x00000020 00273 #define ISC_REQ_PROMPT_FOR_CREDS 0x00000040 00274 #define ISC_REQ_USE_SUPPLIED_CREDS 0x00000080 00275 #define ISC_REQ_ALLOCATE_MEMORY 0x00000100 00276 #define ISC_REQ_USE_DCE_STYLE 0x00000200 00277 #define ISC_REQ_DATAGRAM 0x00000400 00278 #define ISC_REQ_CONNECTION 0x00000800 00279 #define ISC_REQ_CALL_LEVEL 0x00001000 00280 #define ISC_REQ_FRAGMENT_SUPPLIED 0x00002000 00281 #define ISC_REQ_EXTENDED_ERROR 0x00004000 00282 #define ISC_REQ_STREAM 0x00008000 00283 #define ISC_REQ_INTEGRITY 0x00010000 00284 #define ISC_REQ_IDENTIFY 0x00020000 00285 #define ISC_REQ_NULL_SESSION 0x00040000 00286 #define ISC_REQ_MANUAL_CRED_VALIDATION 0x00080000 00287 #define ISC_REQ_RESERVED1 0x00100000 00288 #define ISC_REQ_FRAGMENT_TO_FIT 0x00200000 00289 00290 #define ISC_RET_DELEGATE 0x00000001 00291 #define ISC_RET_MUTUAL_AUTH 0x00000002 00292 #define ISC_RET_REPLAY_DETECT 0x00000004 00293 #define ISC_RET_SEQUENCE_DETECT 0x00000008 00294 #define ISC_RET_CONFIDENTIALITY 0x00000010 00295 #define ISC_RET_USE_SESSION_KEY 0x00000020 00296 #define ISC_RET_USED_COLLECTED_CREDS 0x00000040 00297 #define ISC_RET_USED_SUPPLIED_CREDS 0x00000080 00298 #define ISC_RET_ALLOCATED_MEMORY 0x00000100 00299 #define ISC_RET_USED_DCE_STYLE 0x00000200 00300 #define ISC_RET_DATAGRAM 0x00000400 00301 #define ISC_RET_CONNECTION 0x00000800 00302 #define ISC_RET_INTERMEDIATE_RETURN 0x00001000 00303 #define ISC_RET_CALL_LEVEL 0x00002000 00304 #define ISC_RET_EXTENDED_ERROR 0x00004000 00305 #define ISC_RET_STREAM 0x00008000 00306 #define ISC_RET_INTEGRITY 0x00010000 00307 #define ISC_RET_IDENTIFY 0x00020000 00308 #define ISC_RET_NULL_SESSION 0x00040000 00309 #define ISC_RET_MANUAL_CRED_VALIDATION 0x00080000 00310 #define ISC_RET_RESERVED1 0x00100000 00311 #define ISC_RET_FRAGMENT_ONLY 0x00200000 00312 00313 SECURITY_STATUS SEC_ENTRY AcceptSecurityContext( 00314 PCredHandle phCredential, PCtxtHandle phContext, PSecBufferDesc pInput, 00315 ULONG fContextReq, ULONG TargetDataRep, 00316 PCtxtHandle phNewContext, PSecBufferDesc pOutput, 00317 ULONG *pfContextAttr, PTimeStamp ptsExpiry); 00318 00319 typedef SECURITY_STATUS (SEC_ENTRY *ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle, 00320 PCtxtHandle, PSecBufferDesc, ULONG, ULONG, PCtxtHandle, 00321 PSecBufferDesc, ULONG *, PTimeStamp); 00322 00323 /* flags for AcceptSecurityContext fContextReq and pfContextAttr */ 00324 #define ASC_REQ_DELEGATE 0x00000001 00325 #define ASC_REQ_MUTUAL_AUTH 0x00000002 00326 #define ASC_REQ_REPLAY_DETECT 0x00000004 00327 #define ASC_REQ_SEQUENCE_DETECT 0x00000008 00328 #define ASC_REQ_CONFIDENTIALITY 0x00000010 00329 #define ASC_REQ_USE_SESSION_KEY 0x00000020 00330 #define ASC_REQ_ALLOCATE_MEMORY 0x00000100 00331 #define ASC_REQ_USE_DCE_STYLE 0x00000200 00332 #define ASC_REQ_DATAGRAM 0x00000400 00333 #define ASC_REQ_CONNECTION 0x00000800 00334 #define ASC_REQ_CALL_LEVEL 0x00001000 00335 #define ASC_REQ_FRAGMENT_SUPPLIED 0x00002000 00336 #define ASC_REQ_EXTENDED_ERROR 0x00008000 00337 #define ASC_REQ_STREAM 0x00010000 00338 #define ASC_REQ_INTEGRITY 0x00020000 00339 #define ASC_REQ_LICENSING 0x00040000 00340 #define ASC_REQ_IDENTIFY 0x00080000 00341 #define ASC_REQ_ALLOW_NULL_SESSION 0x00100000 00342 #define ASC_REQ_ALLOW_NON_USER_LOGONS 0x00200000 00343 #define ASC_REQ_ALLOW_CONTEXT_REPLAY 0x00400000 00344 #define ASC_REQ_FRAGMENT_TO_FIT 0x00800000 00345 #define ASC_REQ_FRAGMENT_NO_TOKEN 0x01000000 00346 00347 #define ASC_RET_DELEGATE 0x00000001 00348 #define ASC_RET_MUTUAL_AUTH 0x00000002 00349 #define ASC_RET_REPLAY_DETECT 0x00000004 00350 #define ASC_RET_SEQUENCE_DETECT 0x00000008 00351 #define ASC_RET_CONFIDENTIALITY 0x00000010 00352 #define ASC_RET_USE_SESSION_KEY 0x00000020 00353 #define ASC_RET_ALLOCATED_MEMORY 0x00000100 00354 #define ASC_RET_USED_DCE_STYLE 0x00000200 00355 #define ASC_RET_DATAGRAM 0x00000400 00356 #define ASC_RET_CONNECTION 0x00000800 00357 #define ASC_RET_CALL_LEVEL 0x00002000 00358 #define ASC_RET_THIRD_LEG_FAILED 0x00004000 00359 #define ASC_RET_EXTENDED_ERROR 0x00008000 00360 #define ASC_RET_STREAM 0x00010000 00361 #define ASC_RET_INTEGRITY 0x00020000 00362 #define ASC_RET_LICENSING 0x00040000 00363 #define ASC_RET_IDENTIFY 0x00080000 00364 #define ASC_RET_NULL_SESSION 0x00100000 00365 #define ASC_RET_ALLOW_NON_USER_LOGONS 0x00200000 00366 #define ASC_RET_ALLOW_CONTEXT_REPLAY 0x00400000 00367 #define ASC_RET_FRAGMENT_ONLY 0x00800000 00368 #define ASC_RET_NO_TOKEN 0x01000000 00369 00370 /*Vvalues for TargetDataRep */ 00371 #define SECURITY_NATIVE_DREP 0x00000010 00372 #define SECURITY_NETWORK_DREP 0x00000000 00373 00374 00375 SECURITY_STATUS SEC_ENTRY CompleteAuthToken(PCtxtHandle phContext, 00376 PSecBufferDesc pToken); 00377 00378 typedef SECURITY_STATUS (SEC_ENTRY *COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle, 00379 PSecBufferDesc); 00380 00381 SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(PCtxtHandle phContext); 00382 00383 typedef SECURITY_STATUS (SEC_ENTRY *DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle); 00384 00385 SECURITY_STATUS SEC_ENTRY ApplyControlToken(PCtxtHandle phContext, 00386 PSecBufferDesc pInput); 00387 00388 typedef SECURITY_STATUS (SEC_ENTRY *APPLY_CONTROL_TOKEN_FN)(PCtxtHandle, 00389 PSecBufferDesc); 00390 00391 SECURITY_STATUS SEC_ENTRY QueryContextAttributesA(PCtxtHandle phContext, 00392 ULONG ulAttribute, void *pBuffer); 00393 SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(PCtxtHandle phContext, 00394 ULONG ulAttribute, void *pBuffer); 00395 #define QueryContextAttributes WINELIB_NAME_AW(QueryContextAttributes) 00396 00397 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle, 00398 ULONG, void *); 00399 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, 00400 ULONG, void *); 00401 #define QUERY_CONTEXT_ATTRIBUTES_FN WINELIB_NAME_AW(QUERY_CONTEXT_ATTRIBUTES_FN_) 00402 00403 /* values for QueryContextAttributes/SetContextAttributes ulAttribute */ 00404 #define SECPKG_ATTR_SIZES 0 00405 #define SECPKG_ATTR_NAMES 1 00406 #define SECPKG_ATTR_LIFESPAN 2 00407 #define SECPKG_ATTR_DCE_INFO 3 00408 #define SECPKG_ATTR_STREAM_SIZES 4 00409 #define SECPKG_ATTR_KEY_INFO 5 00410 #define SECPKG_ATTR_AUTHORITY 6 00411 #define SECPKG_ATTR_PROTO_INFO 7 00412 #define SECPKG_ATTR_PASSWORD_EXPIRY 8 00413 #define SECPKG_ATTR_SESSION_KEY 9 00414 #define SECPKG_ATTR_PACKAGE_INFO 10 00415 #define SECPKG_ATTR_USER_FLAGS 11 00416 #define SECPKG_ATTR_NEGOTIATION_INFO 12 00417 #define SECPKG_ATTR_NATIVE_NAMES 13 00418 #define SECPKG_ATTR_FLAGS 14 00419 #define SECPKG_ATTR_USE_VALIDATED 15 00420 #define SECPKG_ATTR_CREDENTIAL_NAME 16 00421 #define SECPKG_ATTR_TARGET_INFORMATION 17 00422 #define SECPKG_ATTR_ACCESS_TOKEN 18 00423 #define SECPKG_ATTR_TARGET 19 00424 #define SECPKG_ATTR_AUTHENTICATION_ID 20 00425 00426 /* types for QueryContextAttributes/SetContextAttributes */ 00427 00428 typedef struct _SecPkgContext_Sizes 00429 { 00430 ULONG cbMaxToken; 00431 ULONG cbMaxSignature; 00432 ULONG cbBlockSize; 00433 ULONG cbSecurityTrailer; 00434 } SecPkgContext_Sizes, *PSecPkgContext_Sizes; 00435 00436 typedef struct _SecPkgContext_StreamSizes 00437 { 00438 ULONG cbHeader; 00439 ULONG cbTrailer; 00440 ULONG cbMaximumMessage; 00441 ULONG cbBuffers; 00442 ULONG cbBlockSize; 00443 } SecPkgContext_StreamSizes, *PSecPkgContext_StreamSizes; 00444 00445 typedef struct _SecPkgContext_NamesA 00446 { 00447 SEC_CHAR *sUserName; 00448 } SecPkgContext_NamesA, *PSecPkgContext_NamesA; 00449 00450 typedef struct _SecPkgContext_NamesW 00451 { 00452 SEC_WCHAR *sUserName; 00453 } SecPkgContext_NamesW, *PSecPkgContext_NamesW; 00454 00455 #define SecPkgContext_Names WINELIB_NAME_AW(SecPkgContext_Names) 00456 #define PSecPkgContext_Names WINELIB_NAME_AW(PSecPkgContext_Names) 00457 00458 typedef struct _SecPkgContext_Lifespan 00459 { 00460 TimeStamp tsStart; 00461 TimeStamp tsExpiry; 00462 } SecPkgContext_Lifespan, *PSecPkgContext_Lifespan; 00463 00464 typedef struct _SecPkgContext_DceInfo 00465 { 00466 ULONG AuthzSvc; 00467 void *pPac; 00468 } SecPkgContext_DceInfo, *PSecPkgContext_DceInfo; 00469 00470 typedef struct _SecPkgContext_KeyInfoA 00471 { 00472 SEC_CHAR *sSignatureAlgorithmName; 00473 SEC_CHAR *sEncryptAlgorithmName; 00474 ULONG KeySize; 00475 ULONG SignatureAlgorithm; 00476 ULONG EncryptAlgorithm; 00477 } SecPkgContext_KeyInfoA, *PSecPkgContext_KeyInfoA; 00478 00479 typedef struct _SecPkgContext_KeyInfoW 00480 { 00481 SEC_WCHAR *sSignatureAlgorithmName; 00482 SEC_WCHAR *sEncryptAlgorithmName; 00483 ULONG KeySize; 00484 ULONG SignatureAlgorithm; 00485 ULONG EncryptAlgorithm; 00486 } SecPkgContext_KeyInfoW, *PSecPkgContext_KeyInfoW; 00487 00488 #define SecPkgContext_KeyInfo WINELIB_NAME_AW(SecPkgContext_KeyInfo) 00489 #define PSecPkgContext_KeyInfo WINELIB_NAME_AW(PSecPkgContext_KeyInfo) 00490 00491 typedef struct _SecPkgContext_AuthorityA 00492 { 00493 SEC_CHAR *sAuthorityName; 00494 } SecPkgContext_AuthorityA, *PSecPkgContext_AuthorityA; 00495 00496 typedef struct _SecPkgContext_AuthorityW 00497 { 00498 SEC_WCHAR *sAuthorityName; 00499 } SecPkgContext_AuthorityW, *PSecPkgContext_AuthorityW; 00500 00501 #define SecPkgContext_Authority WINELIB_NAME_AW(SecPkgContext_Authority) 00502 #define PSecPkgContext_Authority WINELIB_NAME_AW(PSecPkgContext_Authority) 00503 00504 typedef struct _SecPkgContext_ProtoInfoA 00505 { 00506 SEC_CHAR *sProtocolName; 00507 ULONG majorVersion; 00508 ULONG minorVersion; 00509 } SecPkgContext_ProtoInfoA, *PSecPkgContext_ProtoInfoA; 00510 00511 typedef struct _SecPkgContext_ProtoInfoW 00512 { 00513 SEC_WCHAR *sProtocolName; 00514 ULONG majorVersion; 00515 ULONG minorVersion; 00516 } SecPkgContext_ProtoInfoW, *PSecPkgContext_ProtoInfoW; 00517 00518 #define SecPkgContext_ProtoInfo WINELIB_NAME_AW(SecPkgContext_ProtoInfo) 00519 #define PSecPkgContext_ProtoInfo WINELIB_NAME_AW(PSecPkgContext_ProtoInfo) 00520 00521 typedef struct _SecPkgContext_PasswordExpiry 00522 { 00523 TimeStamp tsPasswordExpires; 00524 } SecPkgContext_PasswordExpiry, *PSecPkgContext_PasswordExpiry; 00525 00526 typedef struct _SecPkgContext_SessionKey 00527 { 00528 ULONG SessionKeyLength; 00529 unsigned char *SessionKey; 00530 } SecPkgContext_SessionKey, *PSecPkgContext_SessionKey; 00531 00532 typedef struct _SecPkgContext_PackageInfoA 00533 { 00534 PSecPkgInfoA PackageInfo; 00535 } SecPkgContext_PackageInfoA, *PSecPkgContext_PackageInfoA; 00536 00537 typedef struct _SecPkgContext_PackageInfoW 00538 { 00539 PSecPkgInfoW PackageInfo; 00540 } SecPkgContext_PackageInfoW, *PSecPkgContext_PackageInfoW; 00541 00542 #define SecPkgContext_PackageInfo WINELIB_NAME_AW(SecPkgContext_PackageInfo) 00543 #define PSecPkgContext_PackageInfo WINELIB_NAME_AW(PSecPkgContext_PackageInfo) 00544 00545 typedef struct _SecPkgContext_Flags 00546 { 00547 ULONG Flags; 00548 } SecPkgContext_Flags, *PSecPkgContext_Flags; 00549 00550 typedef struct _SecPkgContext_UserFlags 00551 { 00552 ULONG UserFlags; 00553 } SecPkgContext_UserFlags, *PSecPkgContext_UserFlags; 00554 00555 typedef struct _SecPkgContext_NegotiationInfoA 00556 { 00557 PSecPkgInfoA PackageInfo; 00558 ULONG NegotiationState; 00559 } SecPkgContext_NegotiationInfoA, *PSecPkgContext_NegotiationInfoA; 00560 00561 typedef struct _SecPkgContext_NegotiationInfoW 00562 { 00563 PSecPkgInfoW PackageInfo; 00564 ULONG NegotiationState; 00565 } SecPkgContext_NegotiationInfoW, *PSecPkgContext_NegotiationInfoW; 00566 00567 #define SecPkgContext_NegotiationInfo WINELIB_NAME_AW(SecPkgContext_NegotiationInfo) 00568 #define PSecPkgContext_NegotiationInfo WINELIB_NAME_AW(PSecPkgContext_NegotiationInfo) 00569 00570 /* values for NegotiationState */ 00571 #define SECPKG_NEGOTIATION_COMPLETE 0 00572 #define SECPKG_NEGOTIATION_OPTIMISTIC 1 00573 #define SECPKG_NEGOTIATION_IN_PROGRESS 2 00574 #define SECPKG_NEGOTIATION_DIRECT 3 00575 #define SECPKG_NEGOTIATION_TRY_MULTICRED 4 00576 00577 typedef struct _SecPkgContext_NativeNamesA 00578 { 00579 SEC_CHAR *sClientName; 00580 SEC_CHAR *sServerName; 00581 } SecPkgContext_NativeNamesA, *PSecPkgContext_NativeNamesA; 00582 00583 typedef struct _SecPkgContext_NativeNamesW 00584 { 00585 SEC_WCHAR *sClientName; 00586 SEC_WCHAR *sServerName; 00587 } SecPkgContext_NativeNamesW, *PSecPkgContext_NativeNamesW; 00588 00589 #define SecPkgContext_NativeNames WINELIB_NAME_AW(SecPkgContext_NativeNames) 00590 #define PSecPkgContext_NativeNames WINELIB_NAME_AW(PSecPkgContext_NativeNames) 00591 00592 typedef struct _SecPkgContext_CredentialNameA 00593 { 00594 ULONG CredentialType; 00595 SEC_CHAR *sCredentialName; 00596 } SecPkgContext_CredentialNameA, *PSecPkgContext_CredentialNameA; 00597 00598 typedef struct _SecPkgContext_CredentialNameW 00599 { 00600 ULONG CredentialType; 00601 SEC_WCHAR *sCredentialName; 00602 } SecPkgContext_CredentialNameW, *PSecPkgContext_CredentialNameW; 00603 00604 #define SecPkgContext_CredentialName WINELIB_NAME_AW(SecPkgContext_CredentialName) 00605 #define PSecPkgContext_CredentialName WINELIB_NAME_AW(PSecPkgContext_CredentialName) 00606 00607 typedef struct _SecPkgContext_AccessToken 00608 { 00609 void *AccessToken; 00610 } SecPkgContext_AccessToken, *PSecPkgContext_AccessToken; 00611 00612 typedef struct _SecPkgContext_TargetInformation 00613 { 00614 ULONG MarshalledTargetInfoLength; 00615 unsigned char *MarshalledTargetInfo; 00616 } SecPkgContext_TargetInformation, *PSecPkgContext_TargetInformation; 00617 00618 typedef struct _SecPkgContext_AuthzID 00619 { 00620 ULONG AuthzIDLength; 00621 char *AuthzID; 00622 } SecPkgContext_AuthzID, *PSecPkgContext_AuthzID; 00623 00624 typedef struct _SecPkgContext_Target 00625 { 00626 ULONG TargetLength; 00627 char *Target; 00628 } SecPkgContext_Target, *PSecPkgContext_Target; 00629 00630 SECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(PCtxtHandle phContext); 00631 00632 typedef SECURITY_STATUS (SEC_ENTRY *IMPERSONATE_SECURITY_CONTEXT_FN) 00633 (PCtxtHandle); 00634 00635 SECURITY_STATUS SEC_ENTRY RevertSecurityContext(PCtxtHandle phContext); 00636 00637 typedef SECURITY_STATUS (SEC_ENTRY *REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle); 00638 00639 SECURITY_STATUS SEC_ENTRY MakeSignature(PCtxtHandle phContext, 00640 ULONG fQOP, PSecBufferDesc pMessage, ULONG MessageSeqNo); 00641 00642 typedef SECURITY_STATUS (SEC_ENTRY *MAKE_SIGNATURE_FN)(PCtxtHandle, 00643 ULONG, PSecBufferDesc, ULONG); 00644 00645 SECURITY_STATUS SEC_ENTRY VerifySignature(PCtxtHandle phContext, 00646 PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP); 00647 00648 typedef SECURITY_STATUS (SEC_ENTRY *VERIFY_SIGNATURE_FN)(PCtxtHandle, 00649 PSecBufferDesc, ULONG, PULONG); 00650 00651 SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoA( 00652 SEC_CHAR *pszPackageName, PSecPkgInfoA *ppPackageInfo); 00653 SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW( 00654 SEC_WCHAR *pszPackageName, PSecPkgInfoW *ppPackageInfo); 00655 #define QuerySecurityPackageInfo WINELIB_NAME_AW(QuerySecurityPackageInfo) 00656 00657 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_PACKAGE_INFO_FN_A) 00658 (SEC_CHAR *, PSecPkgInfoA *); 00659 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_PACKAGE_INFO_FN_W) 00660 (SEC_WCHAR *, PSecPkgInfoW *); 00661 #define QUERY_SECURITY_PACKAGE_INFO_FN WINELIB_NAME_AW(QUERY_SECURITY_PACKAGE_INFO_FN_) 00662 00663 SECURITY_STATUS SEC_ENTRY ExportSecurityContext(PCtxtHandle phContext, 00664 ULONG fFlags, PSecBuffer pPackedContext, void **pToken); 00665 00666 typedef SECURITY_STATUS (SEC_ENTRY *EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle, 00667 ULONG, PSecBuffer, void **); 00668 00669 /* values for ExportSecurityContext fFlags */ 00670 #define SECPKG_CONTEXT_EXPORT_RESET_NEW 0x00000001 00671 #define SECPKG_CONTEXT_EXPORT_DELETE_OLD 0x00000002 00672 00673 SECURITY_STATUS SEC_ENTRY ImportSecurityContextA(SEC_CHAR *pszPackage, 00674 PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext); 00675 SECURITY_STATUS SEC_ENTRY ImportSecurityContextW(SEC_WCHAR *pszPackage, 00676 PSecBuffer pPackedContext, void *Token, PCtxtHandle phContext); 00677 #define ImportSecurityContext WINELIB_NAME_AW(ImportSecurityContext) 00678 00679 typedef SECURITY_STATUS (SEC_ENTRY *IMPORT_SECURITY_CONTEXT_FN_A)(SEC_CHAR *, 00680 PSecBuffer, void *, PCtxtHandle); 00681 typedef SECURITY_STATUS (SEC_ENTRY *IMPORT_SECURITY_CONTEXT_FN_W)(SEC_WCHAR *, 00682 PSecBuffer, void *, PCtxtHandle); 00683 #define IMPORT_SECURITY_CONTEXT_FN WINELIB_NAME_AW(IMPORT_SECURITY_CONTEXT_FN_) 00684 00685 SECURITY_STATUS SEC_ENTRY AddCredentialsA(PCredHandle hCredentials, 00686 SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialUse, 00687 void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument, 00688 PTimeStamp ptsExpiry); 00689 SECURITY_STATUS SEC_ENTRY AddCredentialsW(PCredHandle hCredentials, 00690 SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialUse, 00691 void *pAuthData, SEC_GET_KEY_FN pGetKeyFn, void *pvGetKeyArgument, 00692 PTimeStamp ptsExpiry); 00693 #define AddCredentials WINELIB_NAME_AW(AddCredentials) 00694 00695 typedef SECURITY_STATUS (SEC_ENTRY *ADD_CREDENTIALS_FN_A)(PCredHandle, 00696 SEC_CHAR *, SEC_CHAR *, ULONG, void *, SEC_GET_KEY_FN, void *, 00697 PTimeStamp); 00698 typedef SECURITY_STATUS (SEC_ENTRY *ADD_CREDENTIALS_FN_W)(PCredHandle, 00699 SEC_WCHAR *, SEC_WCHAR *, ULONG, void *, SEC_GET_KEY_FN, void *, 00700 PTimeStamp); 00701 00702 SECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(PCtxtHandle phContext, 00703 HANDLE *phToken); 00704 00705 typedef SECURITY_STATUS (SEC_ENTRY *QUERY_SECURITY_CONTEXT_TOKEN_FN) 00706 (PCtxtHandle, HANDLE *); 00707 00708 SECURITY_STATUS SEC_ENTRY EncryptMessage(PCtxtHandle phContext, ULONG fQOP, 00709 PSecBufferDesc pMessage, ULONG MessageSeqNo); 00710 SECURITY_STATUS SEC_ENTRY DecryptMessage(PCtxtHandle phContext, 00711 PSecBufferDesc pMessage, ULONG MessageSeqNo, PULONG pfQOP); 00712 00713 /* values for EncryptMessage fQOP */ 00714 #define SECQOP_WRAP_NO_ENCRYPT 0x80000001 00715 00716 typedef SECURITY_STATUS (SEC_ENTRY *ENCRYPT_MESSAGE_FN)(PCtxtHandle, ULONG, 00717 PSecBufferDesc, ULONG); 00718 typedef SECURITY_STATUS (SEC_ENTRY *DECRYPT_MESSAGE_FN)(PCtxtHandle, 00719 PSecBufferDesc, ULONG, PULONG); 00720 00721 SECURITY_STATUS SEC_ENTRY SetContextAttributesA(PCtxtHandle phContext, 00722 ULONG ulAttribute, void *pBuffer, ULONG cbBuffer); 00723 SECURITY_STATUS SEC_ENTRY SetContextAttributesW(PCtxtHandle phContext, 00724 ULONG ulAttribute, void *pBuffer, ULONG cbBuffer); 00725 #define SetContextAttributes WINELIB_NAME_AW(SetContextAttributes) 00726 00727 typedef SECURITY_STATUS (SEC_ENTRY *SET_CONTEXT_ATTRIBUTES_FN_A)(PCtxtHandle, 00728 ULONG, void *, ULONG); 00729 typedef SECURITY_STATUS (SEC_ENTRY *SET_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, 00730 ULONG, void *, ULONG); 00731 00732 #define SECURITY_ENTRYPOINT_ANSIA "InitSecurityInterfaceA" 00733 #define SECURITY_ENTRYPOINT_ANSIW "InitSecurityInterfaceW" 00734 #define SECURITY_ENTRYPOINT_ANSI WINELIB_NAME_AW(SECURITY_ENTRYPOINT_ANSI) 00735 00736 typedef struct _SECURITY_FUNCTION_TABLE_A 00737 { 00738 ULONG dwVersion; 00739 ENUMERATE_SECURITY_PACKAGES_FN_A EnumerateSecurityPackagesA; 00740 QUERY_CREDENTIALS_ATTRIBUTES_FN_A QueryCredentialsAttributesA; 00741 ACQUIRE_CREDENTIALS_HANDLE_FN_A AcquireCredentialsHandleA; 00742 FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; 00743 void *Reserved2; 00744 INITIALIZE_SECURITY_CONTEXT_FN_A InitializeSecurityContextA; 00745 ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; 00746 COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; 00747 DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; 00748 APPLY_CONTROL_TOKEN_FN ApplyControlToken; 00749 QUERY_CONTEXT_ATTRIBUTES_FN_A QueryContextAttributesA; 00750 IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; 00751 REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; 00752 MAKE_SIGNATURE_FN MakeSignature; 00753 VERIFY_SIGNATURE_FN VerifySignature; 00754 FREE_CONTEXT_BUFFER_FN FreeContextBuffer; 00755 QUERY_SECURITY_PACKAGE_INFO_FN_A QuerySecurityPackageInfoA; 00756 void *Reserved3; 00757 void *Reserved4; 00758 EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext; 00759 IMPORT_SECURITY_CONTEXT_FN_A ImportSecurityContextA; 00760 ADD_CREDENTIALS_FN_A AddCredentialsA; 00761 void *Reserved8; 00762 QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; 00763 ENCRYPT_MESSAGE_FN EncryptMessage; 00764 DECRYPT_MESSAGE_FN DecryptMessage; 00765 SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA; 00766 } SecurityFunctionTableA, *PSecurityFunctionTableA; 00767 00768 /* No, it really is FreeCredentialsHandle, see the thread beginning 00769 * http://sourceforge.net/mailarchive/message.php?msg_id=4321080 for a 00770 * discovery discussion. */ 00771 typedef struct _SECURITY_FUNCTION_TABLE_W 00772 { 00773 ULONG dwVersion; 00774 ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW; 00775 QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW; 00776 ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW; 00777 FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle; 00778 void *Reserved2; 00779 INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW; 00780 ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext; 00781 COMPLETE_AUTH_TOKEN_FN CompleteAuthToken; 00782 DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext; 00783 APPLY_CONTROL_TOKEN_FN ApplyControlToken; 00784 QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW; 00785 IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext; 00786 REVERT_SECURITY_CONTEXT_FN RevertSecurityContext; 00787 MAKE_SIGNATURE_FN MakeSignature; 00788 VERIFY_SIGNATURE_FN VerifySignature; 00789 FREE_CONTEXT_BUFFER_FN FreeContextBuffer; 00790 QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW; 00791 void *Reserved3; 00792 void *Reserved4; 00793 EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext; 00794 IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW; 00795 ADD_CREDENTIALS_FN_W AddCredentialsW; 00796 void *Reserved8; 00797 QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken; 00798 ENCRYPT_MESSAGE_FN EncryptMessage; 00799 DECRYPT_MESSAGE_FN DecryptMessage; 00800 SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW; 00801 } SecurityFunctionTableW, *PSecurityFunctionTableW; 00802 00803 #define SecurityFunctionTable WINELIB_NAME_AW(SecurityFunctionTable) 00804 #define PSecurityFunctionTable WINELIB_NAME_AW(PSecurityFunctionTable) 00805 00806 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION 1 00807 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2 00808 00809 PSecurityFunctionTableA SEC_ENTRY InitSecurityInterfaceA(void); 00810 PSecurityFunctionTableW SEC_ENTRY InitSecurityInterfaceW(void); 00811 #define InitSecurityInterface WINELIB_NAME_AW(InitSecurityInterface) 00812 00813 typedef PSecurityFunctionTableA (SEC_ENTRY *INIT_SECURITY_INTERFACE_A)(void); 00814 typedef PSecurityFunctionTableW (SEC_ENTRY *INIT_SECURITY_INTERFACE_W)(void); 00815 #define INIT_SECURITY_INTERFACE WINELIB_NAME_AW(INIT_SECURITY_INTERFACE_) 00816 00817 #ifdef __cplusplus 00818 } 00819 #endif 00820 00821 #endif /* ndef __WINE_SSPI_H__ */ Generated on Fri May 25 2012 04:30:54 for ReactOS by
1.7.6.1
|