ReactOS  0.4.15-dev-1397-g19779b3
sspi.h
Go to the documentation of this file.
1 #ifndef __SSPI_H__
2 #define __SSPI_H__
3 
4 // for ntifs.h:
5 #define ISSP_LEVEL 32
6 #define ISSP_MODE 0
7 
8 #ifdef MIDL_PASS
9 #define MIDL_PROP(x) x
10 #else
11 #define MIDL_PROP(x)
12 #endif
13 
14 #define SEC_TEXT TEXT
15 #define SEC_FAR
16 #define SEC_ENTRY __stdcall
17 
18 #if defined(_NO_KSECDD_IMPORT_)
19 #define KSECDDDECLSPEC
20 #else
21 #define KSECDDDECLSPEC __declspec(dllimport)
22 #endif
23 
24 #define SECQOP_WRAP_NO_ENCRYPT 0x80000001
25 #define SECQOP_WRAP_OOB_DATA 0x40000000
26 
27 #define SECURITY_ENTRYPOINTW SEC_TEXT("InitSecurityInterfaceW")
28 #define SECURITY_ENTRYPOINT SECURITY_ENTRYPOINTW
29 
30 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION 1
31 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2
32 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_3 3
33 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_4 4
34 
35 #define SECURITY_NATIVE_DREP 0x00000010
36 #define SECURITY_NETWORK_DREP 0x00000000
37 
38 #define SECPKG_ID_NONE 0xFFFF
39 
40 #define SECPKG_CRED_ATTR_NAMES 1
41 #define SECPKG_CRED_ATTR_SSI_PROVIDER 2
42 
43 #define SECPKG_ATTR_SIZES 0
44 #define SECPKG_ATTR_NAMES 1
45 #define SECPKG_ATTR_LIFESPAN 2
46 #define SECPKG_ATTR_DCE_INFO 3
47 #define SECPKG_ATTR_STREAM_SIZES 4
48 #define SECPKG_ATTR_KEY_INFO 5
49 #define SECPKG_ATTR_AUTHORITY 6
50 #define SECPKG_ATTR_PROTO_INFO 7
51 #define SECPKG_ATTR_PASSWORD_EXPIRY 8
52 #define SECPKG_ATTR_SESSION_KEY 9
53 #define SECPKG_ATTR_PACKAGE_INFO 10
54 #define SECPKG_ATTR_USER_FLAGS 11
55 #define SECPKG_ATTR_NEGOTIATION_INFO 12
56 #define SECPKG_ATTR_NATIVE_NAMES 13
57 #define SECPKG_ATTR_FLAGS 14
58 #define SECPKG_ATTR_USE_VALIDATED 15
59 #define SECPKG_ATTR_CREDENTIAL_NAME 16
60 #define SECPKG_ATTR_TARGET_INFORMATION 17
61 #define SECPKG_ATTR_ACCESS_TOKEN 18
62 #define SECPKG_ATTR_TARGET 19
63 #define SECPKG_ATTR_AUTHENTICATION_ID 20
64 #define SECPKG_ATTR_LOGOFF_TIME 21
65 #define SECPKG_ATTR_NEGO_KEYS 22
66 #define SECPKG_ATTR_PROMPTING_NEEDED 24
67 #define SECPKG_ATTR_UNIQUE_BINDINGS 25
68 #define SECPKG_ATTR_ENDPOINT_BINDINGS 26
69 #define SECPKG_ATTR_CLIENT_SPECIFIED_TARGET 27
70 #define SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS 30
71 #define SECPKG_ATTR_NEGO_PKG_INFO 31
72 #define SECPKG_ATTR_NEGO_STATUS 32
73 #define SECPKG_ATTR_CONTEXT_DELETED 33
74 
75 #define SECPKG_FLAG_INTEGRITY 0x00000001
76 #define SECPKG_FLAG_PRIVACY 0x00000002
77 #define SECPKG_FLAG_TOKEN_ONLY 0x00000004
78 #define SECPKG_FLAG_DATAGRAM 0x00000008
79 #define SECPKG_FLAG_CONNECTION 0x00000010
80 #define SECPKG_FLAG_MULTI_REQUIRED 0x00000020
81 #define SECPKG_FLAG_CLIENT_ONLY 0x00000040
82 #define SECPKG_FLAG_EXTENDED_ERROR 0x00000080
83 #define SECPKG_FLAG_IMPERSONATION 0x00000100
84 #define SECPKG_FLAG_ACCEPT_WIN32_NAME 0x00000200
85 #define SECPKG_FLAG_STREAM 0x00000400
86 #define SECPKG_FLAG_NEGOTIABLE 0x00000800
87 #define SECPKG_FLAG_GSS_COMPATIBLE 0x00001000
88 #define SECPKG_FLAG_LOGON 0x00002000
89 #define SECPKG_FLAG_ASCII_BUFFERS 0x00004000
90 #define SECPKG_FLAG_FRAGMENT 0x00008000
91 #define SECPKG_FLAG_MUTUAL_AUTH 0x00010000
92 #define SECPKG_FLAG_DELEGATION 0x00020000
93 #define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000
94 #define SECPKG_FLAG_RESTRICTED_TOKENS 0x00080000
95 #define SECPKG_FLAG_NEGO_EXTENDER 0x00100000
96 #define SECPKG_FLAG_NEGOTIABLE2 0x00200000
97 
98 #define SECPKG_CRED_INBOUND 0x00000001
99 #define SECPKG_CRED_OUTBOUND 0x00000002
100 #define SECPKG_CRED_BOTH 0x00000003
101 #define SECPKG_CRED_DEFAULT 0x00000004
102 #define SECPKG_CRED_RESERVED 0xF0000000
103 #define SECPKG_CRED_AUTOLOGON_RESTRICTED 0x00000010
104 #define SECPKG_CRED_PROCESS_POLICY_ONLY 0x00000020
105 
106 #define SECPKG_CONTEXT_EXPORT_RESET_NEW 0x00000001
107 #define SECPKG_CONTEXT_EXPORT_DELETE_OLD 0x00000002
108 #define SECPKG_CONTEXT_EXPORT_TO_KERNEL 0x00000004
109 
110 #define SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES 128
111 #define SECPKG_ATTR_NEGO_INFO_FLAG_NO_KERBEROS 0x1
112 #define SECPKG_ATTR_NEGO_INFO_FLAG_NO_NTLM 0x2
113 
114 #define SecPkgContext_NativeNames SecPkgContext_NativeNamesW
115 #define PSecPkgContext_NativeNames PSecPkgContext_NativeNamesW
116 
117 #define SECBUFFER_VERSION 0
118 
119 #define SECBUFFER_EMPTY 0
120 #define SECBUFFER_DATA 1
121 #define SECBUFFER_TOKEN 2
122 #define SECBUFFER_PKG_PARAMS 3
123 #define SECBUFFER_MISSING 4
124 #define SECBUFFER_EXTRA 5
125 #define SECBUFFER_STREAM_TRAILER 6
126 #define SECBUFFER_STREAM_HEADER 7
127 #define SECBUFFER_NEGOTIATION_INFO 8
128 #define SECBUFFER_PADDING 9
129 #define SECBUFFER_STREAM 10
130 #define SECBUFFER_MECHLIST 11
131 #define SECBUFFER_MECHLIST_SIGNATURE 12
132 #define SECBUFFER_TARGET 13
133 #define SECBUFFER_CHANNEL_BINDINGS 14
134 #define SECBUFFER_CHANGE_PASS_RESPONSE 15
135 #define SECBUFFER_TARGET_HOST 16
136 #define SECBUFFER_ALERT 17
137 
138 #define SECBUFFER_ATTRMASK 0xF0000000
139 #define SECBUFFER_READONLY 0x80000000
140 #define SECBUFFER_READONLY_WITH_CHECKSUM 0x10000000
141 #define SECBUFFER_RESERVED 0x60000000
142 
143 #define ISC_REQ_DELEGATE 0x00000001
144 #define ISC_REQ_MUTUAL_AUTH 0x00000002
145 #define ISC_REQ_REPLAY_DETECT 0x00000004
146 #define ISC_REQ_SEQUENCE_DETECT 0x00000008
147 #define ISC_REQ_CONFIDENTIALITY 0x00000010
148 #define ISC_REQ_USE_SESSION_KEY 0x00000020
149 #define ISC_REQ_PROMPT_FOR_CREDS 0x00000040
150 #define ISC_REQ_USE_SUPPLIED_CREDS 0x00000080
151 #define ISC_REQ_ALLOCATE_MEMORY 0x00000100
152 #define ISC_REQ_USE_DCE_STYLE 0x00000200
153 #define ISC_REQ_DATAGRAM 0x00000400
154 #define ISC_REQ_CONNECTION 0x00000800
155 #define ISC_REQ_CALL_LEVEL 0x00001000
156 #define ISC_REQ_FRAGMENT_SUPPLIED 0x00002000
157 #define ISC_REQ_EXTENDED_ERROR 0x00004000
158 #define ISC_REQ_STREAM 0x00008000
159 #define ISC_REQ_INTEGRITY 0x00010000
160 #define ISC_REQ_IDENTIFY 0x00020000
161 #define ISC_REQ_NULL_SESSION 0x00040000
162 #define ISC_REQ_MANUAL_CRED_VALIDATION 0x00080000
163 #define ISC_REQ_RESERVED1 0x00100000
164 #define ISC_REQ_FRAGMENT_TO_FIT 0x00200000
165 #define ISC_REQ_FORWARD_CREDENTIALS 0x00400000
166 #define ISC_REQ_NO_INTEGRITY 0x00800000
167 #define ISC_REQ_USE_HTTP_STYLE 0x01000000
168 
169 #define ISC_RET_DELEGATE 0x00000001
170 #define ISC_RET_MUTUAL_AUTH 0x00000002
171 #define ISC_RET_REPLAY_DETECT 0x00000004
172 #define ISC_RET_SEQUENCE_DETECT 0x00000008
173 #define ISC_RET_CONFIDENTIALITY 0x00000010
174 #define ISC_RET_USE_SESSION_KEY 0x00000020
175 #define ISC_RET_USED_COLLECTED_CREDS 0x00000040
176 #define ISC_RET_USED_SUPPLIED_CREDS 0x00000080
177 #define ISC_RET_ALLOCATED_MEMORY 0x00000100
178 #define ISC_RET_USED_DCE_STYLE 0x00000200
179 #define ISC_RET_DATAGRAM 0x00000400
180 #define ISC_RET_CONNECTION 0x00000800
181 #define ISC_RET_INTERMEDIATE_RETURN 0x00001000
182 #define ISC_RET_CALL_LEVEL 0x00002000
183 #define ISC_RET_EXTENDED_ERROR 0x00004000
184 #define ISC_RET_STREAM 0x00008000
185 #define ISC_RET_INTEGRITY 0x00010000
186 #define ISC_RET_IDENTIFY 0x00020000
187 #define ISC_RET_NULL_SESSION 0x00040000
188 #define ISC_RET_MANUAL_CRED_VALIDATION 0x00080000
189 #define ISC_RET_RESERVED1 0x00100000
190 #define ISC_RET_FRAGMENT_ONLY 0x00200000
191 #define ISC_RET_FORWARD_CREDENTIALS 0x00400000
192 #define ISC_RET_USED_HTTP_STYLE 0x01000000
193 #define ISC_RET_NO_ADDITIONAL_TOKEN 0x02000000
194 #define ISC_RET_REAUTHENTICATION 0x08000000
195 
196 #define ASC_REQ_DELEGATE 0x00000001
197 #define ASC_REQ_MUTUAL_AUTH 0x00000002
198 #define ASC_REQ_REPLAY_DETECT 0x00000004
199 #define ASC_REQ_SEQUENCE_DETECT 0x00000008
200 #define ASC_REQ_CONFIDENTIALITY 0x00000010
201 #define ASC_REQ_USE_SESSION_KEY 0x00000020
202 #define ASC_REQ_ALLOCATE_MEMORY 0x00000100
203 #define ASC_REQ_USE_DCE_STYLE 0x00000200
204 #define ASC_REQ_DATAGRAM 0x00000400
205 #define ASC_REQ_CONNECTION 0x00000800
206 #define ASC_REQ_CALL_LEVEL 0x00001000
207 #define ASC_REQ_EXTENDED_ERROR 0x00008000
208 #define ASC_REQ_STREAM 0x00010000
209 #define ASC_REQ_INTEGRITY 0x00020000
210 #define ASC_REQ_LICENSING 0x00040000
211 #define ASC_REQ_IDENTIFY 0x00080000
212 #define ASC_REQ_ALLOW_NULL_SESSION 0x00100000
213 #define ASC_REQ_ALLOW_NON_USER_LOGONS 0x00200000
214 #define ASC_REQ_ALLOW_CONTEXT_REPLAY 0x00400000
215 #define ASC_REQ_FRAGMENT_TO_FIT 0x00800000
216 #define ASC_REQ_FRAGMENT_SUPPLIED 0x00002000
217 #define ASC_REQ_NO_TOKEN 0x01000000
218 #define ASC_REQ_PROXY_BINDINGS 0x04000000
219 //#define SSP_RET_REAUTHENTICATION 0x08000000 // internal
220 
221 #define ASC_REQ_ALLOW_MISSING_BINDINGS 0x10000000
222 #define ASC_RET_DELEGATE 0x00000001
223 #define ASC_RET_MUTUAL_AUTH 0x00000002
224 #define ASC_RET_REPLAY_DETECT 0x00000004
225 #define ASC_RET_SEQUENCE_DETECT 0x00000008
226 #define ASC_RET_CONFIDENTIALITY 0x00000010
227 #define ASC_RET_USE_SESSION_KEY 0x00000020
228 #define ASC_RET_ALLOCATED_MEMORY 0x00000100
229 #define ASC_RET_USED_DCE_STYLE 0x00000200
230 #define ASC_RET_DATAGRAM 0x00000400
231 #define ASC_RET_CONNECTION 0x00000800
232 #define ASC_RET_CALL_LEVEL 0x00002000
233 #define ASC_RET_THIRD_LEG_FAILED 0x00004000
234 #define ASC_RET_EXTENDED_ERROR 0x00008000
235 #define ASC_RET_STREAM 0x00010000
236 #define ASC_RET_INTEGRITY 0x00020000
237 #define ASC_RET_LICENSING 0x00040000
238 #define ASC_RET_IDENTIFY 0x00080000
239 #define ASC_RET_NULL_SESSION 0x00100000
240 #define ASC_RET_ALLOW_NON_USER_LOGONS 0x00200000
241 #define ASC_RET_ALLOW_CONTEXT_REPLAY 0x00400000
242 #define ASC_RET_FRAGMENT_ONLY 0x00800000
243 #define ASC_RET_NO_TOKEN 0x01000000
244 #define ASC_RET_NO_ADDITIONAL_TOKEN 0x02000000
245 #define ASC_RET_NO_PROXY_BINDINGS 0x04000000
246 //#define SSP_RET_REAUTHENTICATION 0x08000000 // internal
247 #define ASC_RET_MISSING_BINDINGS 0x10000000
248 
249 #define SEC_DELETED_HANDLE ((ULONG_PTR)(-2))
250 
251 #define SecInvalidateHandle(x) \
252  ((PSecHandle)(x))->dwLower = ((PSecHandle)(x))->dwUpper = ((ULONG_PTR)((INT_PTR)-1));
253 
254 #define SecIsValidHandle(x) \
255  ( ( ((PSecHandle)(x))->dwLower != (ULONG_PTR)(INT_PTR)-1 ) && \
256  ( ((PSecHandle)(x))->dwUpper != (ULONG_PTR)(INT_PTR)-1 ) )
257 
258 typedef WCHAR SEC_WCHAR;
259 typedef CHAR SEC_CHAR;
263 #if ISSP_MODE == 0
264 #define PSSPI_SEC_STRING PSECURITY_STRING
265 #else
266 #define PSSPI_SEC_STRING SEC_WCHAR*
267 #endif
268 
270 
271 #ifndef __SECSTATUS_DEFINED__
273 #define __SECSTATUS_DEFINED__
274 #endif
275 
276 typedef enum _SECPKG_CRED_CLASS
277 {
284 
285 typedef struct _SEC_NEGOTIATION_INFO
286 {
292 
293 typedef struct _SEC_CHANNEL_BINDINGS
294 {
304 
305 #ifndef _AUTH_IDENTITY_EX2_DEFINED
306 #define _AUTH_IDENTITY_EX2_DEFINED
308 {
322 #define SEC_WINNT_AUTH_IDENTITY_VERSION_2 0x201
323 #endif
324 
325 #ifndef _AUTH_IDENTITY_DEFINED
326 #define _AUTH_IDENTITY_DEFINED
327 typedef struct _SEC_WINNT_AUTH_IDENTITY_W
328 {
335  ULONG Flags;
337 #define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1
338 #define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2
339 #define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W
340 #define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W
341 #define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W
342 #endif
343 
344 #ifndef SEC_WINNT_AUTH_IDENTITY_VERSION
345 #define SEC_WINNT_AUTH_IDENTITY_VERSION 0x200
347 {
360 #define SEC_WINNT_AUTH_IDENTITY_EX SEC_WINNT_AUTH_IDENTITY_EXW
361 #define PSEC_WINNT_AUTH_IDENTITY_EX PSEC_WINNT_AUTH_IDENTITY_EXW
362 #endif
363 
364 #ifndef __SECHANDLE_DEFINED__
365 typedef struct _SecHandle
366 {
370 #define __SECHANDLE_DEFINED__
371 #endif
372 
374 
375 typedef struct _SecBuffer
376 {
377  ULONG cbBuffer;
379 #ifdef MIDL_PASS
380  MIDL_PROP([size_is(cbBuffer)]) PCHAR pvBuffer;
381 #else
382  _Field_size_bytes_(cbBuffer) void SEC_FAR *pvBuffer;
383 #endif
385 
386 typedef struct _SecBufferDesc
387 {
389  ULONG cBuffers;
390  MIDL_PROP([size_is(cBuffers)]) _Field_size_(cBuffers) PSecBuffer pBuffers;
392 
393 typedef struct _SecPkgInfoW
394 {
399  MIDL_PROP([string]) SEC_WCHAR *Name;
400  MIDL_PROP([string]) SEC_WCHAR *Comment;
402 #define SecPkgInfo SecPkgInfoW
403 #define PSecPkgInfo PSecPkgInfoW
404 
405 typedef struct _SecPkgCredentials_NamesW
406 {
407  MIDL_PROP([string]) SEC_WCHAR *sUserName;
409 #define SecPkgCredentials_Names SecPkgCredentials_NamesW
410 #define PSecPkgCredentials_Names PSecPkgCredentials_NamesW
411 
412 typedef struct _SecPkgContext_NamesW
413 {
416 #define SecPkgContext_Names SecPkgContext_NamesW
417 #define PSecPkgContext_Names PSecPkgContext_NamesW
418 
419 #if OSVER(NTDDI_VERSION) > NTDDI_WIN2K
420 typedef struct _SecPkgContext_CredentialNameW
421 {
425 #endif
426 #define SecPkgContext_CredentialName SecPkgContext_CredentialNameW
427 #define PSecPkgContext_CredentialName PSecPkgContext_CredentialNameW
428 
430 {
433 
435 {
439 
441 {
444 
446 {
449 
450 typedef struct _SecPkgContext_Sizes
451 {
457 
458 typedef struct _SecPkgContext_StreamSizes
459 {
460  ULONG cbHeader;
466 
467 typedef struct _SecPkgContext_Lifespan
468 {
472 
473 typedef struct _SecPkgContext_PasswordExpiry
474 {
477 
478 typedef struct _SecPkgContext_ProtoInfoW
479 {
484 #define SecPkgContext_ProtoInfo SecPkgContext_ProtoInfoW
485 #define PSecPkgContext_ProtoInfo PSecPkgContext_ProtoInfoW
486 
487 typedef struct _SecPkgContext_KeyInfoW
488 {
491  ULONG KeySize;
495 #define SecPkgContext_KeyInfo SecPkgContext_KeyInfoW
496 #define PSecPkgContext_KeyInfo PSecPkgContext_KeyInfoW
497 
498 typedef struct _SecPkgContext_SessionKey
499 {
503 
505 {
511  _Field_size_bytes_(VerifyKeyLength) PUCHAR VerifyKeyValue;
513 
514 typedef struct _SecPkgContext_DceInfo
515 {
516  ULONG AuthzSvc;
519 
520 typedef struct _SecPkgContext_PackageInfoW
521 {
524 #define SecPkgContext_PackageInfo SecPkgContext_PackageInfoW
525 #define PSecPkgContext_PackageInfo PSecPkgContext_PackageInfoW
526 
527 typedef struct _SecPkgContext_UserFlags
528 {
531 
532 typedef struct _SecPkgContext_Flags
533 {
534  ULONG Flags;
536 
537 typedef struct _SecPkgContext_NegotiationInfoW
538 {
542 
543 typedef struct _SecPkgContext_AuthorityW
544 {
547 #define SecPkgContext_Authority SecPkgContext_AuthorityW
548 #define PSecPkgContext_Authority PSecPkgContext_AuthorityW
549 
550 
551 #if NTDDI_VERSION > NTDDI_WS03
552 typedef struct _SecPkgCredentials_SSIProviderW
553 {
554  SEC_WCHAR *sProviderName;
555  ULONG ProviderInfoLength;
556  PCHAR ProviderInfo;
557 } SecPkgCredentials_SSIProviderW, *PSecPkgCredentials_SSIProviderW;
558 #define SecPkgCredentials_SSIProvider SecPkgCredentials_SSIProviderW
559 #define PSecPkgCredentials_SSIProvider PSecPkgCredentials_SSIProviderW
560 
561 typedef struct _SecPkgContext_LogoffTime
562 {
563  TimeStamp tsLogoffTime;
564 } SecPkgContext_LogoffTime, *PSecPkgContext_LogoffTime;
565 #endif
566 
567 /* forward declaration */
569 #define SecurityFunctionTable SecurityFunctionTableW
570 #define PSecurityFunctionTable PSecurityFunctionTableW
571 
572 typedef
573 VOID
575  PVOID Arg,
576  PVOID Principal,
577  ULONG KeyVer,
578  PVOID *Key,
580 
583 SEC_ENTRY
585  _In_opt_ PCredHandle phCredential,
586  _In_opt_ PCtxtHandle phContext,
587  _In_opt_ PSecBufferDesc pInput,
588  _In_ ULONG fContextReq,
589  _In_ ULONG TargetDataRep,
590  _In_opt_ PCtxtHandle phNewContext,
591  _In_opt_ PSecBufferDesc pOutput,
592  _Out_ PULONG pfContextAttr,
593  _Out_opt_ PTimeStamp ptsExpiry);
594 
595 typedef
598  PCredHandle,
599  PCtxtHandle,
601  ULONG,
602  ULONG,
603  PCtxtHandle,
605  PULONG,
606  PTimeStamp);
607 
610 SEC_ENTRY
612  _In_opt_ PSSPI_SEC_STRING pPrincipal,
613  _In_ PSSPI_SEC_STRING pPackage,
614  _In_ ULONG fCredentialUse,
615  _In_opt_ PVOID pvLogonId,
616  _In_opt_ PVOID pAuthData,
617  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
618  _In_opt_ PVOID pvGetKeyArgument,
619  _Out_ PCredHandle phCredential,
620  _Out_opt_ PTimeStamp ptsExpiry);
621 #define AcquireCredentialsHandle AcquireCredentialsHandleW
622 
623 typedef
628  ULONG,
629  PVOID,
630  PVOID,
632  PVOID,
633  PCredHandle,
634  PTimeStamp);
635 #define ACQUIRE_CREDENTIALS_HANDLE_FN ACQUIRE_CREDENTIALS_HANDLE_FN_W
636 
638 SEC_ENTRY
640  _In_ PCredHandle hCredentials,
641  _In_opt_ LPSTR pszPrincipal,
642  _In_ LPSTR pszPackage,
643  _In_ ULONG fCredentialUse,
644  _In_opt_ PVOID pAuthData,
645  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
646  _In_opt_ PVOID pvGetKeyArgument,
647  _Out_opt_ PTimeStamp ptsExpiry);
648 
649 typedef
652  PCredHandle,
653  SEC_CHAR *,
654  SEC_CHAR *,
655  ULONG,
656  PVOID,
658  PVOID,
659  PTimeStamp);
660 
663 SEC_ENTRY
665  _In_ PCredHandle hCredentials,
666  _In_opt_ PSSPI_SEC_STRING pPrincipal,
667  _In_ PSSPI_SEC_STRING pPackage,
668  _In_ ULONG fCredentialUse,
669  _In_opt_ PVOID pAuthData,
670  _In_opt_ SEC_GET_KEY_FN pGetKeyFn,
671  _In_opt_ PVOID pvGetKeyArgument,
672  _Out_opt_ PTimeStamp ptsExpiry);
673 
674 typedef
677  PCredHandle,
680  ULONG,
681  PVOID,
683  PVOID,
684  PTimeStamp);
685 
686 #ifdef UNICODE
687 #define AddCredentials AddCredentialsW
688 #define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_W
689 #else
690 #define AddCredentials AddCredentialsA
691 #define ADD_CREDENTIALS_FN ADD_CREDENTIALS_FN_A
692 #endif
693 
696 SEC_ENTRY
698  _In_ PCtxtHandle phContext,
699  _In_ PSecBufferDesc pInput);
700 
701 typedef
705 
706 #if (ISSP_MODE != 0)
707 
709 SEC_ENTRY
710 ChangeAccountPasswordA(
711  _In_ SEC_CHAR* pszPackageName,
712  _In_ SEC_CHAR* pszDomainName,
713  _In_ SEC_CHAR* pszAccountName,
714  _In_ SEC_CHAR* pszOldPassword,
715  _In_ SEC_CHAR* pszNewPassword,
716  _In_ BOOLEAN bImpersonating,
718  _Inout_ PSecBufferDesc pOutput);
719 
720 typedef
722 (SEC_ENTRY * CHANGE_PASSWORD_FN_A)(
723  SEC_CHAR *,
724  SEC_CHAR *,
725  SEC_CHAR *,
726  SEC_CHAR *,
727  SEC_CHAR *,
728  BOOLEAN,
729  ULONG,
731 
733 SEC_ENTRY
734 ChangeAccountPasswordW(
735  _In_ SEC_WCHAR* pszPackageName,
736  _In_ SEC_WCHAR* pszDomainName,
737  _In_ SEC_WCHAR* pszAccountName,
738  _In_ SEC_WCHAR* pszOldPassword,
739  _In_ SEC_WCHAR* pszNewPassword,
740  _In_ BOOLEAN bImpersonating,
742  _Inout_ PSecBufferDesc pOutput);
743 
744 typedef
746 (SEC_ENTRY * CHANGE_PASSWORD_FN_W)(
747  SEC_WCHAR *,
748  SEC_WCHAR *,
749  SEC_WCHAR *,
750  SEC_WCHAR *,
751  SEC_WCHAR *,
752  BOOLEAN,
753  ULONG,
755 
756 #ifdef UNICODE
757 #define ChangeAccountPassword ChangeAccountPasswordW
758 #define CHANGE_PASSWORD_FN CHANGE_PASSWORD_FN_W
759 #else
760 #define ChangeAccountPassword ChangeAccountPasswordA
761 #define CHANGE_PASSWORD_FN CHANGE_PASSWORD_FN_A
762 #endif
763 
764 #endif /* ISSP_MODE != 0 */
765 
767 SEC_ENTRY
769  _In_ PCtxtHandle phContext,
770  _In_ PSecBufferDesc pToken);
771 
772 typedef
775  PCtxtHandle,
777 
779 SEC_ENTRY
781  _In_ PCtxtHandle phContext,
782  _Inout_ PSecBufferDesc pMessage,
783  _In_ ULONG MessageSeqNo,
784  _Out_opt_ PULONG pfQOP);
785 
786 typedef
789  PCtxtHandle,
791  ULONG,
792  PULONG);
793 
796 SEC_ENTRY
798  _In_ PCtxtHandle phContext);
799 
800 typedef
803  PCtxtHandle);
804 
806 SEC_ENTRY
808  _In_ PCtxtHandle phContext,
809  _In_ ULONG fQOP,
810  _Inout_ PSecBufferDesc pMessage,
811  _In_ ULONG MessageSeqNo);
812 
813 typedef
816  PCtxtHandle,
817  ULONG,
819  ULONG);
820 
823 SEC_ENTRY
825  _Out_ PULONG pcPackages,
826  _Deref_out_ PSecPkgInfoW* ppPackageInfo);
827 #define EnumerateSecurityPackages EnumerateSecurityPackagesW
828 
829 typedef
832  PULONG,
833  PSecPkgInfoW*);
834 #define ENUMERATE_SECURITY_PACKAGES_FN ENUMERATE_SECURITY_PACKAGES_FN_W
835 
838 SEC_ENTRY
840  _In_ PCtxtHandle phContext,
841  _In_ ULONG fFlags,
842  _Out_ PSecBuffer pPackedContext,
843  _Out_ PVOID* pToken);
844 
845 typedef
848  PCtxtHandle,
849  ULONG,
850  PSecBuffer,
851  PVOID*);
852 
854 SEC_ENTRY
856  _Inout_ PVOID pvContextBuffer);
857 
858 typedef
861  _Inout_ PVOID);
862 
865 SEC_ENTRY
867  _In_ PCredHandle phCredential);
868 
869 typedef
872  PCredHandle);
873 
876 SEC_ENTRY
878  _In_ PCtxtHandle phContext);
879 
880 typedef
883  PCtxtHandle);
884 
887 SEC_ENTRY
889  _In_ PSSPI_SEC_STRING pszPackage,
890  _In_ PSecBuffer pPackedContext,
891  _In_ PVOID Token,
892  _Out_ PCtxtHandle phContext);
893 #define ImportSecurityContext ImportSecurityContextW
894 
895 typedef
899  PSecBuffer,
900  PVOID,
901  PCtxtHandle);
902 #define IMPORT_SECURITY_CONTEXT_FN IMPORT_SECURITY_CONTEXT_FN_W
903 
906 SEC_ENTRY
908  _In_opt_ PCredHandle phCredential,
909  _In_opt_ PCtxtHandle phContext,
910  _In_opt_ PSSPI_SEC_STRING pTargetName,
911  _In_ ULONG fContextReq,
913  _In_ ULONG TargetDataRep,
914  _In_opt_ PSecBufferDesc pInput,
916  _Inout_opt_ PCtxtHandle phNewContext,
917  _Inout_opt_ PSecBufferDesc pOutput,
918  _Out_ PULONG pfContextAttr,
919  _Out_opt_ PTimeStamp ptsExpiry);
920 #define InitializeSecurityContext InitializeSecurityContextW
921 
922 typedef
925  PCredHandle,
926  PCtxtHandle,
928  ULONG,
929  ULONG,
930  ULONG,
932  ULONG,
933  PCtxtHandle,
935  PULONG,
936  PTimeStamp);
937 #define INITIALIZE_SECURITY_CONTEXT_FN INITIALIZE_SECURITY_CONTEXT_FN_W
938 
941 SEC_ENTRY
943 #define InitSecurityInterface InitSecurityInterfaceW
944 
945 typedef
948 #define INIT_SECURITY_INTERFACE INIT_SECURITY_INTERFACE_W
949 
952 SEC_ENTRY
954  _In_ PCtxtHandle phContext,
955  _In_ ULONG fQOP,
956  _In_ PSecBufferDesc pMessage,
957  _In_ ULONG MessageSeqNo);
958 
959 typedef
962  PCtxtHandle,
963  ULONG,
965  ULONG);
966 
969 SEC_ENTRY
971  _In_ PCtxtHandle phContext,
972  _In_ ULONG ulAttribute,
974 #define QueryContextAttributes QueryContextAttributesW
975 
976 typedef
979  PCtxtHandle,
980  ULONG,
981  PVOID);
982 #define QUERY_CONTEXT_ATTRIBUTES_FN QUERY_CONTEXT_ATTRIBUTES_FN_W
983 
986 SEC_ENTRY
988  _In_ PCredHandle phCredential,
989  _In_ ULONG ulAttribute,
991 #define QueryCredentialsAttributes QueryCredentialsAttributesW
992 
993 typedef
996  PCredHandle,
997  ULONG,
998  PVOID);
999 #define QUERY_CREDENTIALS_ATTRIBUTES_FN QUERY_CREDENTIALS_ATTRIBUTES_FN_W
1000 
1003 SEC_ENTRY
1005  _In_ PCtxtHandle phContext,
1006  _Out_ PVOID* Token);
1007 
1008 typedef
1011  PCtxtHandle, PVOID *);
1012 
1015 SEC_ENTRY
1017  _In_ PSSPI_SEC_STRING pPackageName,
1018  _Deref_out_ PSecPkgInfoW *ppPackageInfo);
1019 #define QuerySecurityPackageInfo QuerySecurityPackageInfoW
1020 
1021 typedef
1025  PSecPkgInfoW *);
1026 #define QUERY_SECURITY_PACKAGE_INFO_FN QUERY_SECURITY_PACKAGE_INFO_FN_W
1027 
1030 SEC_ENTRY
1032  _In_ PCtxtHandle phContext);
1033 
1034 typedef
1037  PCtxtHandle);
1038 
1039 #if (OSVER(NTDDI_VERSION) > NTDDI_WIN2K)
1041 SEC_ENTRY
1043  _In_ PCtxtHandle phContext,
1044  _In_ ULONG ulAttribute,
1045  _In_bytecount_(cbBuffer) PVOID pBuffer,
1046  _In_ ULONG cbBuffer);
1047 #define SetContextAttributes SetContextAttributesW
1048 
1049 typedef
1052  PCtxtHandle,
1053  ULONG,
1054  PVOID,
1055  ULONG);
1056 #define SET_CONTEXT_ATTRIBUTES_FN SET_CONTEXT_ATTRIBUTES_FN_W
1057 #endif
1058 
1059 #if (NTDDI_VERSION > NTDDI_WS03)
1062 SEC_ENTRY
1063 SetCredentialsAttributesW(
1064  _In_ PCredHandle phCredential,
1065  _In_ ULONG ulAttribute,
1066  _In_bytecount_(cbBuffer) PVOID pBuffer,
1067  _In_ ULONG cbBuffer);
1068 #define SetCredentialsAttributes SetCredentialsAttributesW
1069 
1070 typedef
1072 (SEC_ENTRY * SET_CREDENTIALS_ATTRIBUTES_FN_W)(
1073  PCredHandle,
1074  ULONG,
1075  PVOID,
1076  ULONG);
1077 #define SET_CREDENTIALS_ATTRIBUTES_FN SET_CREDENTIALS_ATTRIBUTES_FN_W
1078 #endif /* NTDDI_VERSION > NTDDI_WS03 */
1079 
1082 SEC_ENTRY
1084  _In_ PCtxtHandle phContext,
1085  _In_ PSecBufferDesc pMessage,
1086  _In_ ULONG MessageSeqNo,
1087  _Out_ PULONG pfQOP);
1088 
1089 typedef
1092  PCtxtHandle,
1094  ULONG,
1095  PULONG);
1096 
1097 #if (ISSP_MODE == 0)
1098 
1100 NTSTATUS
1101 NTAPI
1102 SecMakeSPN(
1103  _In_ PUNICODE_STRING ServiceClass,
1106  _In_opt_ USHORT InstancePort,
1107  _In_opt_ PUNICODE_STRING Referrer,
1111 
1112 #if (NTDDI_VERSION >= NTDDI_WINXP)
1114 NTSTATUS
1115 NTAPI
1116 SecMakeSPNEx(
1117  _In_ PUNICODE_STRING ServiceClass,
1120  _In_opt_ USHORT InstancePort,
1121  _In_opt_ PUNICODE_STRING Referrer,
1122  _In_opt_ PUNICODE_STRING TargetInfo,
1126 
1128 NTSTATUS
1129 SEC_ENTRY
1131  _In_ PSID Sid,
1132  _Out_ PULONG NameSize,
1133  _Inout_ PUNICODE_STRING NameBuffer,
1134  _Out_ PULONG DomainSize OPTIONAL,
1135  _Out_opt_ PUNICODE_STRING DomainBuffer,
1136  _Out_ PSID_NAME_USE NameUse);
1137 
1139 NTSTATUS
1140 SEC_ENTRY
1143  _Inout_ PULONG SidSize,
1144  _Out_ PSID Sid,
1145  _Out_ PSID_NAME_USE NameUse,
1146  _Out_opt_ PULONG DomainSize, // WDK says _Out_ only + ... OPTIONAL
1147  _Inout_opt_ PUNICODE_STRING ReferencedDomain);
1148 #endif
1149 
1150 #if (NTDDI_VERSION >= NTDDI_WS03)
1152 NTSTATUS
1153 SEC_ENTRY
1155  _In_ WELL_KNOWN_SID_TYPE SidType,
1156  _Out_ PSID Sid,
1157  _In_ ULONG SidBufferSize,
1158  _Inout_opt_ PULONG SidSize);
1159 #endif
1160 
1161 #if (NTDDI_VERSION >= NTDDI_VISTA)
1163 NTSTATUS
1164 NTAPI
1166  _In_ PUNICODE_STRING ServiceClass,
1169  _In_opt_ USHORT InstancePort,
1170  _In_opt_ PUNICODE_STRING Referrer,
1171  _In_opt_ PUNICODE_STRING InTargetInfo,
1173  _Out_opt_ PULONG TotalSize,
1175  _In_ BOOLEAN IsTargetInfoMarshaled);
1176 #endif
1177 
1178 #endif /* ISSP_MODE == 0 */
1179 
1180 #if (NTDDI_VERSION >= NTDDI_WIN7)
1181 
1183 SEC_ENTRY
1185  _In_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE pAuthIdentity,
1186  _Deref_out_opt_ PCWSTR* ppszUserName,
1187  _Deref_out_opt_ PCWSTR* ppszDomainName,
1188  _Deref_opt_out_opt_ PCWSTR* ppszPackedCredentialsString);
1189 
1191 SEC_ENTRY
1194 
1196 SEC_ENTRY
1200 
1201 VOID
1202 SEC_ENTRY
1205 
1206 VOID
1207 SEC_ENTRY
1210 
1211 VOID
1212 SEC_ENTRY
1214  _In_opt_ PVOID DataBuffer);
1215 
1217 SEC_ENTRY
1219  _In_opt_ PCWSTR pszUserName,
1220  _In_opt_ PCWSTR pszDomainName,
1221  _In_opt_ PCWSTR pszPackedCredentialsString,
1223 
1225 SEC_ENTRY
1229  _Out_opt_ PBOOLEAN SameSuppliedUser,
1230  _Out_opt_ PBOOLEAN SameSuppliedIdentity);
1231 
1233 SEC_ENTRY
1236  _Out_ PULONG AuthIdentityLength,
1237  _Outptr_result_bytebuffer_(*AuthIdentityLength) PCHAR* AuthIdentityByteArray);
1238 
1240 SEC_ENTRY
1242  _In_ PULONG AuthIdentityLength,
1243  _In_reads_bytes_(AuthIdentityLength) PCHAR AuthIdentityByteArray,
1244  _Outptr_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppAuthIdentity);
1245 
1246 BOOLEAN
1247 SEC_ENTRY
1249  _In_ PULONG ErrorOrNtStatus);
1250 
1252 SEC_ENTRY
1254  _In_ PCWSTR pszTargetName,
1255  _Outptr_ PWSTR* pszHostName);
1256 
1258 SEC_ENTRY
1261  _In_ PCWSTR pszPackageName,
1262  _Outptr_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppNewAuthIdentity);
1263 
1264 #define SEC_WINNT_AUTH_IDENTITY_MARSHALLED 0x04
1265 #define SEC_WINNT_AUTH_IDENTITY_ONLY 0x08
1266 
1267 #endif /* NTDDI_VERSION >= NTDDI_WIN7 */
1268 
1269 #define FreeCredentialHandle FreeCredentialsHandle
1271 {
1272  ULONG dwVersion;
1299 #if OSVER(NTDDI_VERSION) > NTDDI_WIN2K
1301 #endif
1302 #if NTDDI_VERSION > NTDDI_WS03SP1
1303  SET_CREDENTIALS_ATTRIBUTES_FN_W SetCredentialsAttributesW;
1304 #endif
1305 #if ISSP_MODE != 0
1306  CHANGE_PASSWORD_FN_W ChangeAccountPasswordW;
1307 #else
1309 #endif
1310 };
1311 
1312 #endif /* !__SSPI_H__ */
SEC_WCHAR * sUserName
Definition: sspi.h:583
signed char * PCHAR
Definition: retypes.h:7
SECURITY_STATUS SEC_ENTRY QueryCredentialsAttributesW(_In_ PCredHandle phCredential, _In_ ULONG ulAttribute, _Inout_ void *pBuffer)
_Field_size_(cBuffers) PSecBuffer pBuffers
const uint16_t * PCWSTR
Definition: typedefs.h:57
struct _SEC_CHANNEL_BINDINGS SEC_CHANNEL_BINDINGS
struct _SEC_WINNT_AUTH_IDENTITY_EXW * PSEC_WINNT_AUTH_IDENTITY_EXW
SEC_WCHAR * Comment
Definition: sspi.h:119
struct _SecPkgContext_PasswordExpiry * PSecPkgContext_PasswordExpiry
SECURITY_STATUS(SEC_ENTRY * EXPORT_SECURITY_CONTEXT_FN)(PCtxtHandle, ULONG, PSecBuffer, void **)
Definition: sspi.h:829
struct _SEC_WINNT_AUTH_IDENTITY_W * PSEC_WINNT_AUTH_IDENTITY_W
KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountName(_In_ PUNICODE_STRING Name, _Inout_ PULONG SidSize, _Out_ PSID Sid, _Out_ PSID_NAME_USE NameUse, _Out_opt_ PULONG DomainSize, _Inout_opt_ PUNICODE_STRING ReferencedDomain)
Definition: stubs.c:333
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
ULONG dwInitiatorOffset
Definition: sspi.h:237
struct _SecPkgInfoW SecPkgInfoW
APPLY_CONTROL_TOKEN_FN ApplyControlToken
Definition: sspi.h:1000
struct _SecBuffer * PSecBuffer
TimeStamp tsStart
Definition: sspi.h:591
#define _In_reads_bytes_(s)
Definition: no_sal2.h:170
USHORT wRPCID
Definition: sspi.h:397
WCHAR SEC_WCHAR
Definition: sspi.h:29
ULONG cbApplicationDataLength
Definition: sspi.h:241
ULONG EncryptAlgorithm
Definition: sspi.h:616
VERIFY_SIGNATURE_FN VerifySignature
Definition: sspi.h:1005
ULONG ulVersion
Definition: sspi.h:181
SECPKG_CRED_CLASS CredClass
Definition: sspi.h:436
struct _SecPkgContext_NamesW SecPkgContext_NamesW
uint16_t * PWSTR
Definition: typedefs.h:56
struct _SecPkgContext_UserFlags SecPkgContext_UserFlags
SECURITY_STATUS(SEC_ENTRY * ENUMERATE_SECURITY_PACKAGES_FN_W)(PULONG, PSecPkgInfoW *)
Definition: sspi.h:208
unsigned char * PUCHAR
Definition: retypes.h:3
REVERT_SECURITY_CONTEXT_FN RevertSecurityContext
Definition: sspi.h:1003
char CHAR
Definition: xmlstorage.h:175
FREE_CREDENTIALS_HANDLE_FN FreeCredentialsHandle
Definition: sspi.h:994
SECURITY_STATUS SEC_ENTRY SetContextAttributesW(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _In_reads_bytes_(cbBuffer) void *pBuffer, _In_ ULONG cbBuffer)
PSecHandle PCtxtHandle
Definition: sspi.h:71
SECURITY_STATUS SEC_ENTRY VerifySignature(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo, _Out_ PULONG pfQOP)
Definition: stubs.c:419
LONG NTSTATUS
Definition: precomp.h:26
MIDL_PROP([string]) SEC_WCHAR *Name
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE _In_ ULONG _In_ ULONG _In_opt_ PTOKEN_GROUPS _In_ PTOKEN_SOURCE _Out_ PVOID _Out_ PULONG _Inout_ PLUID _Out_ PHANDLE Token
#define MIDL_PROP(x)
Definition: sspi.h:11
DECRYPT_MESSAGE_FN DecryptMessage
Definition: sspi.h:1016
#define _Outptr_
Definition: no_sal2.h:262
struct _SecHandle * PSecHandle
struct _SecPkgContext_NamesW * PSecPkgContext_NamesW
struct _SecPkgContext_NegoKeys * PSecPkgContext_NegoKeys
SECURITY_STATUS SEC_ENTRY ExportSecurityContext(_In_ PCtxtHandle phContext, _In_ ULONG fFlags, _Out_ PSecBuffer pPackedContext, _Out_ void **pToken)
void * PSEC_WINNT_AUTH_IDENTITY_OPAQUE
Definition: sspi.h:96
struct _SECURITY_STRING SECURITY_STRING
SECURITY_STATUS(SEC_ENTRY * APPLY_CONTROL_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:495
SECURITY_STATUS(SEC_ENTRY * SET_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, ULONG, void *, ULONG)
Definition: sspi.h:946
ULONG_PTR dwLower
Definition: sspi.h:53
SECURITY_STATUS(SEC_ENTRY * REVERT_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:777
PSecPkgInfoW PackageInfo
Definition: sspi.h:669
SECURITY_STATUS SEC_ENTRY QuerySecurityContextToken(_In_ PCtxtHandle phContext, _Out_ HANDLE *phToken)
Definition: stubs.c:297
struct _SecPkgCredentials_NamesW * PSecPkgCredentials_NamesW
SECURITY_STATUS SEC_ENTRY SspiCompareAuthIdentities(_In_opt_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity1, _In_opt_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity2, _Out_opt_ PBOOLEAN SameSuppliedUser, _Out_opt_ PBOOLEAN SameSuppliedIdentity)
SECURITY_STATUS(SEC_ENTRY * DELETE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:487
struct _SecPkgContext_ProtoInfoW * PSecPkgContext_ProtoInfoW
char * LPSTR
Definition: xmlstorage.h:182
ULONG cbBlockSize
Definition: sspi.h:563
SECURITY_STATUS SEC_ENTRY EncryptMessage(_In_ PCtxtHandle phContext, _In_ ULONG fQOP, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo)
SEC_WCHAR * sUserName
Definition: sspi.h:256
SECURITY_STATUS SEC_ENTRY FreeContextBuffer(_Inout_ PVOID pv)
Definition: stubs.c:134
struct _SecBufferDesc SecBufferDesc
SECURITY_STATUS SEC_ENTRY AddCredentialsW(_In_ PCredHandle hCredentials, _In_opt_ SEC_WCHAR *pszPrincipal, _In_ SEC_WCHAR *pszPackage, _In_ ULONG fCredentialUse, _In_opt_ void *pAuthData, _In_opt_ SEC_GET_KEY_FN pGetKeyFn, _In_opt_ void *pvGetKeyArgument, _Out_opt_ PTimeStamp ptsExpiry)
ENCRYPT_MESSAGE_FN EncryptMessage
Definition: sspi.h:1015
_In_opt_ PALLOCATE_FUNCTION Allocate
Definition: exfuncs.h:814
struct _SEC_NEGOTIATION_INFO SEC_NEGOTIATION_INFO
SEC_WCHAR * sSignatureAlgorithmName
Definition: sspi.h:612
#define _In_opt_
Definition: no_sal2.h:212
SECURITY_STATUS(SEC_ENTRY * ACCEPT_SECURITY_CONTEXT_FN)(PCredHandle, PCtxtHandle, PSecBufferDesc, ULONG, ULONG, PCtxtHandle, PSecBufferDesc, ULONG *, PTimeStamp)
Definition: sspi.h:421
SECURITY_STATUS SEC_ENTRY QueryContextAttributesW(_In_ PCtxtHandle phContext, _In_ ULONG ulAttribute, _Out_ void *pBuffer)
SECURITY_STATUS SEC_ENTRY SspiUnmarshalAuthIdentity(_In_ PULONG AuthIdentityLength, _In_reads_bytes_(AuthIdentityLength) PCHAR AuthIdentityByteArray, _Outptr_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE *ppAuthIdentity)
SECURITY_STATUS SEC_ENTRY DecryptMessage(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo, _Out_opt_ PULONG pfQOP)
struct _SecPkgContext_PackageInfoW SecPkgContext_PackageInfoW
TimeStamp tsPasswordExpires
Definition: sspi.h:654
struct _SecPkgContext_Sizes * PSecPkgContext_Sizes
ULONG fCapabilities
Definition: sspi.h:114
uint32_t ULONG_PTR
Definition: typedefs.h:65
ULONG cbInitiatorLength
Definition: sspi.h:236
ULONG cbMaxSignature
Definition: sspi.h:562
struct _SecPkgContext_Lifespan * PSecPkgContext_Lifespan
struct _SecPkgContext_NegotiationInfoW SecPkgContext_NegotiationInfoW
SECURITY_STATUS(SEC_ENTRY * QUERY_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle, ULONG, void *)
Definition: sspi.h:516
_Field_size_bytes_(KeyLength) PUCHAR KeyValue
SECURITY_STATUS SEC_ENTRY MakeSignature(_In_ PCtxtHandle phContext, _In_ ULONG fQOP, _In_ PSecBufferDesc pMessage, _In_ ULONG MessageSeqNo)
Definition: stubs.c:256
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
ULONG dwInitiatorAddrType
Definition: sspi.h:235
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
long LONG
Definition: pedump.c:60
struct _SEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY_W
ULONG cbMaxToken
Definition: sspi.h:117
USHORT PackedCredentialsLength
Definition: sspi.h:317
_Field_size_bytes_(cbBuffer) void *pvBuffer
SECURITY_STATUS(SEC_ENTRY * DECRYPT_MESSAGE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:923
_Check_return_ SECURITY_STATUS SEC_ENTRY ImpersonateSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:178
#define _Deref_out_opt_
Definition: sal.h:1013
ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW
Definition: sspi.h:991
struct _SEC_NEGOTIATION_INFO * PSEC_NEGOTIATION_INFO
SECURITY_STATUS SEC_ENTRY AddCredentialsA(_In_ PCredHandle hCredentials, _In_opt_ SEC_CHAR *pszPrincipal, _In_ SEC_CHAR *pszPackage, _In_ ULONG fCredentialUse, _In_opt_ void *pAuthData, _In_opt_ SEC_GET_KEY_FN pGetKeyFn, _In_opt_ void *pvGetKeyArgument, _Out_opt_ PTimeStamp ptsExpiry)
struct _SecPkgContext_PackageInfoW * PSecPkgContext_PackageInfoW
SEC_WCHAR * Name
Definition: sspi.h:118
SECURITY_INTEGER * PTimeStamp
Definition: sspi.h:78
struct _SecPkgContext_KeyInfoW * PSecPkgContext_KeyInfoW
unsigned char BOOLEAN
SECURITY_STATUS SEC_ENTRY CompleteAuthToken(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pToken)
struct _SEC_WINNT_AUTH_IDENTITY_EXW SEC_WINNT_AUTH_IDENTITY_EXW
PVOID pBuffer
struct _SEC_WINNT_AUTH_IDENTITY_EX2 SEC_WINNT_AUTH_IDENTITY_EX2
SECURITY_STATUS(SEC_ENTRY * ACQUIRE_CREDENTIALS_HANDLE_FN_W)(SEC_WCHAR *, SEC_WCHAR *, ULONG, PLUID, PVOID, SEC_GET_KEY_FN, PVOID, PCredHandle, PTimeStamp)
Definition: sspi.h:299
#define _Out_
Definition: no_sal2.h:160
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
Definition: rtlfuncs.h:1103
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFKEY * Key
Definition: wdfdevice.h:2654
VOID SEC_ENTRY SspiZeroAuthIdentity(_In_opt_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData)
SECURITY_STATUS(SEC_ENTRY * ADD_CREDENTIALS_FN_A)(PCredHandle, SEC_CHAR *, SEC_CHAR *, ULONG, void *, SEC_GET_KEY_FN, void *, PTimeStamp)
Definition: sspi.h:886
struct _SecPkgContext_CredentialNameW SecPkgContext_CredentialNameW
void * PVOID
Definition: retypes.h:9
SECURITY_STATUS SEC_ENTRY ApplyControlToken(_In_ PCtxtHandle phContext, _In_ PSecBufferDesc pInput)
Definition: stubs.c:72
struct _SecPkgContext_Flags SecPkgContext_Flags
Definition: bcd.h:202
struct _SecPkgContext_StreamSizes * PSecPkgContext_StreamSizes
LONG SECURITY_STATUS
Definition: sspi.h:34
PSecurityFunctionTableW(SEC_ENTRY * INIT_SECURITY_INTERFACE_W)(void)
Definition: sspi.h:1031
VOID SEC_ENTRY SspiLocalFree(_In_opt_ PVOID DataBuffer)
Status
Definition: gdiplustypes.h:24
#define _Deref_opt_out_opt_
Definition: sal.h:1015
struct _SecPkgContext_NegoPackageInfo * PSecPkgContext_NegoPackageInfo
#define _Out_opt_
Definition: no_sal2.h:214
_SECPKG_CRED_CLASS
Definition: sspi.h:276
struct _SecBufferDesc * PSecBufferDesc
Definition: main.c:39
SECURITY_STATUS SEC_ENTRY QuerySecurityPackageInfoW(_In_ SEC_WCHAR *pszPackageName, _Outptr_ PSecPkgInfoW *ppPackageInfo)
#define KSECDDDECLSPEC
Definition: sspi.h:21
ULONG IsPromptingNeeded
Definition: sspi.h:437
enum _SID_NAME_USE * PSID_NAME_USE
SEC_WCHAR * sProtocolName
Definition: sspi.h:644
SECURITY_STATUS(SEC_ENTRY * FREE_CREDENTIALS_HANDLE_FN)(PCredHandle)
Definition: sspi.h:315
SECURITY_STATUS(SEC_ENTRY * VERIFY_SIGNATURE_FN)(PCtxtHandle, PSecBufferDesc, ULONG, PULONG)
Definition: sspi.h:798
LPTSTR ServiceName
Definition: ServiceMain.c:15
SECURITY_STATUS SEC_ENTRY SspiGetTargetHostName(_In_ PCWSTR pszTargetName, _Outptr_ PWSTR *pszHostName)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define _Deref_out_
Definition: sal.h:1012
PVOID *typedef PSecBuffer
Definition: ntsecpkg.h:440
struct _SecPkgContext_Lifespan SecPkgContext_Lifespan
SecHandle CtxtHandle
Definition: sspi.h:70
struct _SEC_CHANNEL_BINDINGS * PSEC_CHANNEL_BINDINGS
SECURITY_STATUS(SEC_ENTRY * QUERY_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle, ULONG, PVOID)
Definition: sspi.h:231
struct _SecPkgContext_NegoStatus * PSecPkgContext_NegoStatus
struct _SecPkgContext_ProtoInfoW SecPkgContext_ProtoInfoW
VOID SEC_ENTRY SspiFreeAuthIdentity(_In_opt_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData)
SECURITY_STATUS SEC_ENTRY EnumerateSecurityPackagesW(_Out_ PULONG pcPackages, _Outptr_ PSecPkgInfoW *ppPackageInfo)
SECURITY_STATUS(SEC_ENTRY * COMPLETE_AUTH_TOKEN_FN)(PCtxtHandle, PSecBufferDesc)
Definition: sspi.h:482
DELETE_SECURITY_CONTEXT_FN DeleteSecurityContext
Definition: sspi.h:999
struct _SECURITY_INTEGER * PSECURITY_INTEGER
INITIALIZE_SECURITY_CONTEXT_FN_W InitializeSecurityContextW
Definition: sspi.h:996
struct _SecPkgContext_NegotiationInfoW * PSecPkgContext_NegotiationInfoW
SECURITY_STATUS SEC_ENTRY SspiEncodeStringsAsAuthIdentity(_In_opt_ PCWSTR pszUserName, _In_opt_ PCWSTR pszDomainName, _In_opt_ PCWSTR pszPackedCredentialsString, _Deref_out_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE *ppAuthIdentity)
#define _Inout_
Definition: no_sal2.h:162
SECURITY_STATUS(SEC_ENTRY * MAKE_SIGNATURE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:787
#define _Outptr_result_bytebuffer_(s)
Definition: no_sal2.h:288
struct _SecBuffer SecBuffer
ULONG dwApplicationDataOffset
Definition: sspi.h:242
ADD_CREDENTIALS_FN_W AddCredentialsW
Definition: sspi.h:1012
IMPORT_SECURITY_CONTEXT_FN_W ImportSecurityContextW
Definition: sspi.h:1011
TimeStamp tsExpiry
Definition: sspi.h:592
KSECDDDECLSPEC NTSTATUS NTAPI SecMakeSPN(_In_ PUNICODE_STRING ServiceClass, _In_ PUNICODE_STRING ServiceName, _In_opt_ PUNICODE_STRING InstanceName, _In_opt_ USHORT InstancePort, _In_opt_ PUNICODE_STRING Referrer, _Inout_ PUNICODE_STRING Spn, _Out_opt_ PULONG Length, _In_ BOOLEAN Allocate)
Definition: stubs.c:373
char * PBOOLEAN
Definition: retypes.h:11
struct _SecPkgContext_NegoKeys SecPkgContext_NegoKeys
ULONG cbSecurityTrailer
Definition: sspi.h:564
struct _SecPkgContext_Flags * PSecPkgContext_Flags
#define VOID
Definition: acefi.h:82
ULONG SignatureAlgorithm
Definition: sspi.h:615
ULONG BufferType
Definition: sspi.h:154
SECURITY_STATUS(SEC_ENTRY * ADD_CREDENTIALS_FN_W)(PCredHandle, SEC_WCHAR *, SEC_WCHAR *, ULONG, void *, SEC_GET_KEY_FN, void *, PTimeStamp)
Definition: sspi.h:889
USHORT wVersion
Definition: sspi.h:396
BOOLEAN SEC_ENTRY SspiIsPromptingNeeded(_In_ PULONG ErrorOrNtStatus)
PSecHandle PCredHandle
Definition: sspi.h:68
SECURITY_STATUS(SEC_ENTRY * IMPERSONATE_SECURITY_CONTEXT_FN)(PCtxtHandle)
Definition: sspi.h:773
struct _SecPkgContext_PasswordExpiry SecPkgContext_PasswordExpiry
PSecPkgInfoW PackageInfo
Definition: sspi.h:693
struct _SecPkgContext_NegoPackageInfo SecPkgContext_NegoPackageInfo
SECURITY_INTEGER TimeStamp
Definition: sspi.h:78
EXPORT_SECURITY_CONTEXT_FN ExportSecurityContext
Definition: sspi.h:1010
SECURITY_STATUS SEC_ENTRY AcquireCredentialsHandleW(_In_opt_ SEC_WCHAR *pszPrincipal, _In_ SEC_WCHAR *pszPackage, _In_ ULONG fCredentialsUse, _In_opt_ PLUID pvLogonID, _In_opt_ PVOID pAuthData, _In_opt_ SEC_GET_KEY_FN pGetKeyFn, _In_opt_ PVOID pvGetKeyArgument, _Out_ PCredHandle phCredential, _Out_opt_ PTimeStamp ptsExpiry)
struct _SecPkgContext_NegoStatus SecPkgContext_NegoStatus
#define _In_
Definition: no_sal2.h:158
struct _SecPkgCredentials_NamesW SecPkgCredentials_NamesW
_Field_size_bytes_(SessionKeyLength) unsigned char *SessionKey
KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountSid(_In_ PSID Sid, _Out_ PULONG NameSize, _Inout_ PUNICODE_STRING NameBuffer, _Out_ PULONG DomainSize OPTIONAL, _Out_opt_ PUNICODE_STRING DomainBuffer, _Out_ PSID_NAME_USE NameUse)
Definition: stubs.c:347
KSECDDDECLSPEC NTSTATUS NTAPI SecMakeSPNEx2(_In_ PUNICODE_STRING ServiceClass, _In_ PUNICODE_STRING ServiceName, _In_opt_ PUNICODE_STRING InstanceName, _In_opt_ USHORT InstancePort, _In_opt_ PUNICODE_STRING Referrer, _In_opt_ PUNICODE_STRING InTargetInfo, _Inout_ PUNICODE_STRING Spn, _Out_opt_ PULONG TotalSize, _In_ BOOLEAN Allocate, _In_ BOOLEAN IsTargetInfoMarshaled)
void(SEC_ENTRY * SEC_GET_KEY_FN)(void *Arg, void *Principal, ULONG KeyVer, void **Key, SECURITY_STATUS *Status)
Definition: sspi.h:189
struct _SecPkgContext_CredInfo SecPkgContext_CredInfo
ULONG cbAcceptorLength
Definition: sspi.h:239
struct _SecPkgContext_UserFlags * PSecPkgContext_UserFlags
SEC_WCHAR * sEncryptAlgorithmName
Definition: sspi.h:613
QUERY_SECURITY_CONTEXT_TOKEN_FN QuerySecurityContextToken
Definition: sspi.h:1014
#define SEC_ENTRY
Definition: sspi.h:16
WELL_KNOWN_SID_TYPE
Definition: setypes.h:427
ULONG cbMaxToken
Definition: sspi.h:561
SECURITY_STATUS SEC_ENTRY SspiCopyAuthIdentity(_In_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData, _Deref_out_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE *AuthDataCopy)
unsigned short USHORT
Definition: pedump.c:61
PSecurityFunctionTableW SEC_ENTRY InitSecurityInterfaceW(void)
Definition: sspi.c:132
ULONG cbBuffer
Definition: sspi.h:153
COMPLETE_AUTH_TOKEN_FN CompleteAuthToken
Definition: sspi.h:998
SECURITY_STATUS SEC_ENTRY SspiEncodeAuthIdentityAsStrings(_In_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE pAuthIdentity, _Deref_out_opt_ PCWSTR *ppszUserName, _Deref_out_opt_ PCWSTR *ppszDomainName, _Deref_opt_out_opt_ PCWSTR *ppszPackedCredentialsString)
SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW
Definition: sspi.h:1017
USHORT VerifyKeyLength
Definition: sspi.h:510
ULONG dwAcceptorAddrType
Definition: sspi.h:238
SECURITY_STATUS SEC_ENTRY DeleteSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:89
KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupWellKnownSid(_In_ WELL_KNOWN_SID_TYPE SidType, _Out_ PSID Sid, _In_ ULONG SidBufferSize, _Inout_opt_ PULONG SidSize)
Definition: stubs.c:361
struct _SecPkgInfoW * PSecPkgInfoW
unsigned int * PULONG
Definition: retypes.h:1
SecHandle CredHandle
Definition: sspi.h:67
struct _SecPkgContext_CredentialNameW * PSecPkgContext_CredentialNameW
CHAR SEC_CHAR
Definition: sspi.h:30
struct _SecPkgContext_AuthorityW SecPkgContext_AuthorityW
Definition: bcd.h:201
ULONG_PTR dwUpper
Definition: sspi.h:54
SEC_WCHAR * sAuthorityName
Definition: sspi.h:629
ACCEPT_SECURITY_CONTEXT_FN AcceptSecurityContext
Definition: sspi.h:997
struct _SecPkgContext_CredInfo * PSecPkgContext_CredInfo
struct _SECURITY_INTEGER SECURITY_INTEGER
struct _SecPkgContext_DceInfo SecPkgContext_DceInfo
SEC_WCHAR * Name
Definition: sspi.h:289
struct _SECURITY_STRING * PSECURITY_STRING
enum _SECPKG_CRED_CLASS * PSECPKG_CRED_CLASS
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING InstanceName
Definition: fltkernel.h:1162
#define BOOLEAN
Definition: pedump.c:73
SECURITY_STATUS SEC_ENTRY SspiExcludePackage(_In_opt_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity, _In_ PCWSTR pszPackageName, _Outptr_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE *ppNewAuthIdentity)
ACQUIRE_CREDENTIALS_HANDLE_FN_W AcquireCredentialsHandleW
Definition: sspi.h:993
struct _SecPkgContext_DceInfo * PSecPkgContext_DceInfo
SEC_WCHAR * sCredentialName
Definition: sspi.h:731
SECURITY_STATUS SEC_ENTRY SspiValidateAuthIdentity(_In_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData)
SECURITY_STATUS SEC_ENTRY FreeCredentialsHandle(_In_ PCredHandle phCredential)
Definition: stubs.c:143
SECURITY_STATUS SEC_ENTRY ImportSecurityContextW(_In_ SEC_WCHAR *pszPackage, _In_ PSecBuffer pPackedContext, _In_ void *Token, _Out_ PCtxtHandle phContext)
unsigned int ULONG
Definition: retypes.h:1
QUERY_CONTEXT_ATTRIBUTES_FN_W QueryContextAttributesW
Definition: sspi.h:1001
KSECDDDECLSPEC NTSTATUS NTAPI SecMakeSPNEx(_In_ PUNICODE_STRING ServiceClass, _In_ PUNICODE_STRING ServiceName, _In_opt_ PUNICODE_STRING InstanceName, _In_opt_ USHORT InstancePort, _In_opt_ PUNICODE_STRING Referrer, _In_opt_ PUNICODE_STRING TargetInfo, _Inout_ PUNICODE_STRING Spn, _Out_ PULONG Length OPTIONAL, _In_ BOOLEAN Allocate)
_In_ ULONG _In_ ULONG _In_bytecount_(cjIn) PVOID pvIn
Definition: winddi.h:3582
struct _SecPkgContext_SessionKey * PSecPkgContext_SessionKey
SECURITY_STATUS SEC_ENTRY AcceptSecurityContext(_In_opt_ PCredHandle phCredential, _In_opt_ PCtxtHandle phContext, _In_opt_ PSecBufferDesc pInput, _In_ ULONG fContextReq, _In_ ULONG TargetDataRep, _Inout_opt_ PCtxtHandle phNewContext, _Inout_opt_ PSecBufferDesc pOutput, _Out_ ULONG *pfContextAttr, _Out_opt_ PTimeStamp ptsExpiry)
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_CONTEXT_TOKEN_FN)(PCtxtHandle, HANDLE *)
Definition: sspi.h:900
SECURITY_STATUS(SEC_ENTRY * IMPORT_SECURITY_CONTEXT_FN_W)(SEC_WCHAR *, PSecBuffer, void *, PCtxtHandle)
Definition: sspi.h:856
FREE_CONTEXT_BUFFER_FN FreeContextBuffer
Definition: sspi.h:1006
SECURITY_STATUS(SEC_ENTRY * QUERY_SECURITY_PACKAGE_INFO_FN_W)(SEC_WCHAR *, PSecPkgInfoW *)
Definition: sspi.h:818
MAKE_SIGNATURE_FN MakeSignature
Definition: sspi.h:1004
struct _SecPkgContext_KeyInfoW SecPkgContext_KeyInfoW
struct _SEC_WINNT_AUTH_IDENTITY_EX2 * PSEC_WINNT_AUTH_IDENTITY_EX2
struct _SecHandle SecHandle
struct _SecPkgContext_SubjectAttributes * PSecPkgContext_SubjectAttributes
ULONG cBuffers
Definition: sspi.h:182
IMPERSONATE_SECURITY_CONTEXT_FN ImpersonateSecurityContext
Definition: sspi.h:1002
SECURITY_STATUS SEC_ENTRY SspiMarshalAuthIdentity(_In_ PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity, _Out_ PULONG AuthIdentityLength, _Outptr_result_bytebuffer_(*AuthIdentityLength) PCHAR *AuthIdentityByteArray)
SECURITY_STATUS(SEC_ENTRY * FREE_CONTEXT_BUFFER_FN)(_Inout_ PVOID)
Definition: sspi.h:306
MIDL_PROP([string]) SEC_WCHAR *sUserName
SECURITY_STATUS SEC_ENTRY RevertSecurityContext(_In_ PCtxtHandle phContext)
Definition: stubs.c:317
SECURITY_STATUS SEC_ENTRY InitializeSecurityContextW(_In_opt_ PCredHandle phCredential, _In_opt_ PCtxtHandle phContext, _In_opt_ SEC_WCHAR *pszTargetName, _In_ ULONG fContextReq, _In_ ULONG Reserved1, _In_ ULONG TargetDataRep, _In_opt_ PSecBufferDesc pInput, _In_ ULONG Reserved2, _Inout_opt_ PCtxtHandle phNewContext, _Inout_opt_ PSecBufferDesc pOutput, _Out_ ULONG *pfContextAttr, _Out_opt_ PTimeStamp ptsExpiry)
unsigned short * PUSHORT
Definition: retypes.h:2
SECURITY_STATUS(SEC_ENTRY * INITIALIZE_SECURITY_CONTEXT_FN_W)(PCredHandle, PCtxtHandle, SEC_WCHAR *, ULONG, ULONG, ULONG, PSecBufferDesc, ULONG, PCtxtHandle, PSecBufferDesc, ULONG *, PTimeStamp)
Definition: sspi.h:356
struct _SecPkgContext_AuthorityW * PSecPkgContext_AuthorityW
#define PSSPI_SEC_STRING
Definition: sspi.h:264
struct _SecPkgContext_StreamSizes SecPkgContext_StreamSizes
struct _SecPkgContext_SubjectAttributes SecPkgContext_SubjectAttributes
enum _SECPKG_CRED_CLASS SECPKG_CRED_CLASS
struct _SecPkgContext_Sizes SecPkgContext_Sizes
QUERY_CREDENTIALS_ATTRIBUTES_FN_W QueryCredentialsAttributesW
Definition: sspi.h:992
SECURITY_STATUS(SEC_ENTRY * ENCRYPT_MESSAGE_FN)(PCtxtHandle, ULONG, PSecBufferDesc, ULONG)
Definition: sspi.h:921
struct _SecPkgContext_SessionKey SecPkgContext_SessionKey
MIDL_PROP([size_is(cBuffers)]) _Field_size_(cBuffers) PSecBuffer pBuffers
#define _Inout_opt_
Definition: no_sal2.h:216
#define SEC_FAR
Definition: sspi.h:15
struct _SECURITY_FUNCTION_TABLE_W * PSecurityFunctionTableW
QUERY_SECURITY_PACKAGE_INFO_FN_W QuerySecurityPackageInfoW
Definition: sspi.h:1007
ULONG dwAcceptorOffset
Definition: sspi.h:240
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
LARGE_INTEGER _SECURITY_INTEGER
Definition: sspi.h:260