1use shared::minwindef::{
8 BOOL, DWORD, FILETIME, LPBYTE, LPCVOID, LPDWORD, LPVOID, PBOOL, PBYTE, UCHAR, ULONG
9};
10use shared::windef::{HBITMAP, HWND};
11use um::sspi::PCtxtHandle;
12use um::winnt::{CHAR, LPCSTR, LPCWSTR, LPSTR, LPWSTR, PCSTR, PCWSTR, PSTR, PVOID, PWSTR, WCHAR};
13pub const NERR_BASE: DWORD = 2100;
15pub const NERR_PasswordExpired: DWORD = NERR_BASE + 142;
16pub const CRED_MAX_STRING_LENGTH: DWORD = 256;
17pub const CRED_MAX_USERNAME_LENGTH: DWORD = 256 + 1 + 256;
18pub const CRED_MAX_GENERIC_TARGET_NAME_LENGTH: DWORD = 32767;
19pub const CRED_MAX_DOMAIN_TARGET_NAME_LENGTH: DWORD = 256 + 1 + 80;
20pub const CRED_MAX_TARGETNAME_NAMESPACE_LENGTH: DWORD = 256;
21pub const CRED_MAX_TARGETNAME_ATTRIBUTE_LENGTH: DWORD = 256;
22pub const CRED_MAX_VALUE_SIZE: DWORD = 256;
23pub const CRED_MAX_ATTRIBUTES: DWORD = 64;
24STRUCT!{struct CREDENTIAL_ATTRIBUTEA {
25 Keyword: LPSTR,
26 Flags: DWORD,
27 ValueSize: DWORD,
28 Value: LPBYTE,
29}}
30pub type PCREDENTIAL_ATTRIBUTEA = *mut CREDENTIAL_ATTRIBUTEA;
31STRUCT!{struct CREDENTIAL_ATTRIBUTEW {
32 Keyword: LPWSTR,
33 Flags: DWORD,
34 ValueSize: DWORD,
35 Value: LPBYTE,
36}}
37pub type PCREDENTIAL_ATTRIBUTEW = *mut CREDENTIAL_ATTRIBUTEW;
38pub const CRED_LOGON_TYPES_MASK: DWORD = 0xF000;
39pub const CRED_FLAGS_PASSWORD_FOR_CERT: DWORD = 0x0001;
40pub const CRED_FLAGS_PROMPT_NOW: DWORD = 0x0002;
41pub const CRED_FLAGS_USERNAME_TARGET: DWORD = 0x0004;
42pub const CRED_FLAGS_OWF_CRED_BLOB: DWORD = 0x0008;
43pub const CRED_FLAGS_REQUIRE_CONFIRMATION: DWORD = 0x0010;
44pub const CRED_FLAGS_WILDCARD_MATCH: DWORD = 0x0020;
45pub const CRED_FLAGS_VALID_FLAGS: DWORD = 0xF03F;
46pub const CRED_FLAGS_VALID_INPUT_FLAGS: DWORD = 0xF01F;
47pub const CRED_TYPE_GENERIC: DWORD = 1;
48pub const CRED_TYPE_DOMAIN_PASSWORD: DWORD = 2;
49pub const CRED_TYPE_DOMAIN_CERTIFICATE: DWORD = 3;
50pub const CRED_TYPE_DOMAIN_VISIBLE_PASSWORD: DWORD = 4;
51pub const CRED_TYPE_GENERIC_CERTIFICATE: DWORD = 5;
52pub const CRED_TYPE_DOMAIN_EXTENDED: DWORD = 6;
53pub const CRED_TYPE_MAXIMUM: DWORD = 7;
54pub const CRED_TYPE_MAXIMUM_EX: DWORD = CRED_TYPE_MAXIMUM + 1000;
55pub const CRED_MAX_CREDENTIAL_BLOB_SIZE: DWORD = 5 * 512;
56pub const CRED_PERSIST_NONE: DWORD = 0;
57pub const CRED_PERSIST_SESSION: DWORD = 1;
58pub const CRED_PERSIST_LOCAL_MACHINE: DWORD = 2;
59pub const CRED_PERSIST_ENTERPRISE: DWORD = 3;
60STRUCT!{struct CREDENTIALA {
61 Flags: DWORD,
62 Type: DWORD,
63 TargetName: LPSTR,
64 Comment: LPSTR,
65 LastWritten: FILETIME,
66 CredentialBlobSize: DWORD,
67 CredentialBlob: LPBYTE,
68 Persist: DWORD,
69 AttributeCount: DWORD,
70 Attributes: PCREDENTIAL_ATTRIBUTEA,
71 TargetAlias: LPSTR,
72 UserName: LPSTR,
73}}
74pub type PCREDENTIALA = *mut CREDENTIALA;
75STRUCT!{struct CREDENTIALW {
76 Flags: DWORD,
77 Type: DWORD,
78 TargetName: LPWSTR,
79 Comment: LPWSTR,
80 LastWritten: FILETIME,
81 CredentialBlobSize: DWORD,
82 CredentialBlob: LPBYTE,
83 Persist: DWORD,
84 AttributeCount: DWORD,
85 Attributes: PCREDENTIAL_ATTRIBUTEW,
86 TargetAlias: LPWSTR,
87 UserName: LPWSTR,
88}}
89pub type PCREDENTIALW = *mut CREDENTIALW;
90pub const CRED_TI_SERVER_FORMAT_UNKNOWN: ULONG = 0x0001;
91pub const CRED_TI_DOMAIN_FORMAT_UNKNOWN: ULONG = 0x0002;
92pub const CRED_TI_ONLY_PASSWORD_REQUIRED: ULONG = 0x0004;
93pub const CRED_TI_USERNAME_TARGET: ULONG = 0x0008;
94pub const CRED_TI_CREATE_EXPLICIT_CRED: ULONG = 0x0010;
95pub const CRED_TI_WORKGROUP_MEMBER: ULONG = 0x0020;
96pub const CRED_TI_VALID_FLAGS: ULONG = 0xF07F;
97STRUCT!{struct CREDENTIAL_TARGET_INFORMATIONA {
98 TargetName: LPSTR,
99 NetbiosServerName: LPSTR,
100 DnsServerName: LPSTR,
101 NetbiosDomainName: LPSTR,
102 DnsDomainName: LPSTR,
103 DnsTreeName: LPSTR,
104 PackageName: LPSTR,
105 Flags: ULONG,
106 CredTypeCount: DWORD,
107 CredTypes: LPDWORD,
108}}
109pub type PCREDENTIAL_TARGET_INFORMATIONA = *mut CREDENTIAL_TARGET_INFORMATIONA;
110STRUCT!{struct CREDENTIAL_TARGET_INFORMATIONW {
111 TargetName: LPWSTR,
112 NetbiosServerName: LPWSTR,
113 DnsServerName: LPWSTR,
114 NetbiosDomainName: LPWSTR,
115 DnsDomainName: LPWSTR,
116 DnsTreeName: LPWSTR,
117 PackageName: LPWSTR,
118 Flags: ULONG,
119 CredTypeCount: DWORD,
120 CredTypes: LPDWORD,
121}}
122pub type PCREDENTIAL_TARGET_INFORMATIONW = *mut CREDENTIAL_TARGET_INFORMATIONW;
123pub const CERT_HASH_LENGTH: usize = 20;
124STRUCT!{struct CERT_CREDENTIAL_INFO {
125 cbSize: ULONG,
126 rgbHashOfCert: [UCHAR; CERT_HASH_LENGTH],
127}}
128pub type PCERT_CREDENTIAL_INFO = *mut CERT_CREDENTIAL_INFO;
129STRUCT!{struct USERNAME_TARGET_CREDENTIAL_INFO {
130 UserName: LPWSTR,
131}}
132pub type PUSERNAME_TARGET_CREDENTIAL_INFO = *mut USERNAME_TARGET_CREDENTIAL_INFO;
133STRUCT!{struct BINARY_BLOB_CREDENTIAL_INFO {
134 cbBlob: ULONG,
135 pbBlob: LPBYTE,
136}}
137pub type PBINARY_BLOB_CREDENTIAL_INFO = *mut BINARY_BLOB_CREDENTIAL_INFO;
138ENUM!{enum CRED_MARSHAL_TYPE {
139 CertCredential = 1,
140 UsernameTargetCredential,
141 BinaryBlobCredential,
142 UsernameForPackedCredentials,
143}}
144pub type PCRED_MARSHAL_TYPE = *mut CRED_MARSHAL_TYPE;
145ENUM!{enum CRED_PROTECTION_TYPE {
146 CredUnprotected,
147 CredUserProtection,
148 CredTrustedProtection,
149}}
150pub type PCRED_PROTECTION_TYPE = *mut CRED_PROTECTION_TYPE;
151pub const CRED_PACK_PROTECTED_CREDENTIALS: DWORD = 0x1;
152pub const CRED_PACK_WOW_BUFFER: DWORD = 0x2;
153pub const CRED_PACK_GENERIC_CREDENTIALS: DWORD = 0x4;
154pub const CRED_PACK_ID_PROVIDER_CREDENTIALS: DWORD = 0x8;
155STRUCT!{struct CREDUI_INFOA {
156 cbSize: DWORD,
157 hwndParent: HWND,
158 pszMessageText: PCSTR,
159 pszCaptionText: PCSTR,
160 hbmBanner: HBITMAP,
161}}
162pub type PCREDUI_INFOA = *mut CREDUI_INFOA;
163STRUCT!{struct CREDUI_INFOW {
164 cbSize: DWORD,
165 hwndParent: HWND,
166 pszMessageText: PCWSTR,
167 pszCaptionText: PCWSTR,
168 hbmBanner: HBITMAP,
169}}
170pub type PCREDUI_INFOW = *mut CREDUI_INFOW;
171pub const CREDUI_MAX_MESSAGE_LENGTH: DWORD = 1024;
172pub const CREDUI_MAX_CAPTION_LENGTH: DWORD = 128;
173pub const CREDUI_MAX_GENERIC_TARGET_LENGTH: DWORD = CRED_MAX_GENERIC_TARGET_NAME_LENGTH;
174pub const CREDUI_MAX_DOMAIN_TARGET_LENGTH: DWORD = CRED_MAX_DOMAIN_TARGET_NAME_LENGTH;
175pub const CREDUI_MAX_USERNAME_LENGTH: DWORD = CRED_MAX_USERNAME_LENGTH;
176pub const CREDUI_MAX_PASSWORD_LENGTH: DWORD = 512 / 2;
177pub const CREDUI_FLAGS_INCORRECT_PASSWORD: DWORD = 0x00001;
178pub const CREDUI_FLAGS_DO_NOT_PERSIST: DWORD = 0x00002;
179pub const CREDUI_FLAGS_REQUEST_ADMINISTRATOR: DWORD = 0x00004;
180pub const CREDUI_FLAGS_EXCLUDE_CERTIFICATES: DWORD = 0x00008;
181pub const CREDUI_FLAGS_REQUIRE_CERTIFICATE: DWORD = 0x00010;
182pub const CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX: DWORD = 0x00040;
183pub const CREDUI_FLAGS_ALWAYS_SHOW_UI: DWORD = 0x00080;
184pub const CREDUI_FLAGS_REQUIRE_SMARTCARD: DWORD = 0x00100;
185pub const CREDUI_FLAGS_PASSWORD_ONLY_OK: DWORD = 0x00200;
186pub const CREDUI_FLAGS_VALIDATE_USERNAME: DWORD = 0x00400;
187pub const CREDUI_FLAGS_COMPLETE_USERNAME: DWORD = 0x00800;
188pub const CREDUI_FLAGS_PERSIST: DWORD = 0x01000;
189pub const CREDUI_FLAGS_SERVER_CREDENTIAL: DWORD = 0x04000;
190pub const CREDUI_FLAGS_EXPECT_CONFIRMATION: DWORD = 0x20000;
191pub const CREDUI_FLAGS_GENERIC_CREDENTIALS: DWORD = 0x40000;
192pub const CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS: DWORD = 0x80000;
193pub const CREDUI_FLAGS_KEEP_USERNAME: DWORD = 0x100000;
194pub const CREDUI_FLAGS_PROMPT_VALID: DWORD = CREDUI_FLAGS_INCORRECT_PASSWORD
195 | CREDUI_FLAGS_DO_NOT_PERSIST | CREDUI_FLAGS_REQUEST_ADMINISTRATOR
196 | CREDUI_FLAGS_EXCLUDE_CERTIFICATES | CREDUI_FLAGS_REQUIRE_CERTIFICATE
197 | CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX | CREDUI_FLAGS_ALWAYS_SHOW_UI
198 | CREDUI_FLAGS_REQUIRE_SMARTCARD | CREDUI_FLAGS_PASSWORD_ONLY_OK
199 | CREDUI_FLAGS_VALIDATE_USERNAME | CREDUI_FLAGS_COMPLETE_USERNAME | CREDUI_FLAGS_PERSIST
200 | CREDUI_FLAGS_SERVER_CREDENTIAL | CREDUI_FLAGS_EXPECT_CONFIRMATION
201 | CREDUI_FLAGS_GENERIC_CREDENTIALS | CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS
202 | CREDUI_FLAGS_KEEP_USERNAME;
203pub const CREDUIWIN_GENERIC: DWORD = 0x00000001;
204pub const CREDUIWIN_CHECKBOX: DWORD = 0x00000002;
205pub const CREDUIWIN_AUTHPACKAGE_ONLY: DWORD = 0x00000010;
206pub const CREDUIWIN_IN_CRED_ONLY: DWORD = 0x00000020;
207pub const CREDUIWIN_ENUMERATE_ADMINS: DWORD = 0x00000100;
208pub const CREDUIWIN_ENUMERATE_CURRENT_USER: DWORD = 0x00000200;
209pub const CREDUIWIN_SECURE_PROMPT: DWORD = 0x00001000;
210pub const CREDUIWIN_PREPROMPTING: DWORD = 0x00002000;
211pub const CREDUIWIN_PACK_32_WOW: DWORD = 0x10000000;
212pub const CREDUIWIN_VALID_FLAGS: DWORD = CREDUIWIN_GENERIC | CREDUIWIN_CHECKBOX
213 | CREDUIWIN_AUTHPACKAGE_ONLY | CREDUIWIN_IN_CRED_ONLY | CREDUIWIN_ENUMERATE_ADMINS
214 | CREDUIWIN_ENUMERATE_CURRENT_USER | CREDUIWIN_SECURE_PROMPT | CREDUIWIN_PREPROMPTING
215 | CREDUIWIN_PACK_32_WOW;
216pub const CRED_PRESERVE_CREDENTIAL_BLOB: DWORD = 0x1;
217extern "system" {
218 pub fn CredWriteW(
219 Credential: PCREDENTIALW,
220 Flags: DWORD,
221 ) -> BOOL;
222 pub fn CredWriteA(
223 Credential: PCREDENTIALA,
224 Flags: DWORD,
225 ) -> BOOL;
226 pub fn CredReadW(
227 TargetName: LPCWSTR,
228 Type: DWORD,
229 Flags: DWORD,
230 Credential: *mut PCREDENTIALW,
231 ) -> BOOL;
232 pub fn CredReadA(
233 TargetName: LPCSTR,
234 Type: DWORD,
235 Flags: DWORD,
236 Credential: *mut PCREDENTIALA,
237 ) -> BOOL;
238}
239pub const CRED_ENUMERATE_ALL_CREDENTIALS: DWORD = 0x1;
240extern "system" {
241 pub fn CredEnumerateW(
242 Filter: LPCWSTR,
243 Flags: DWORD,
244 Count: *mut DWORD,
245 Credential: *mut *mut PCREDENTIALW,
246 ) -> BOOL;
247 pub fn CredEnumerateA(
248 Filter: LPCSTR,
249 Flags: DWORD,
250 Count: *mut DWORD,
251 Credential: *mut *mut PCREDENTIALA,
252 ) -> BOOL;
253 pub fn CredWriteDomainCredentialsW(
254 TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW,
255 Credential: PCREDENTIALW,
256 Flags: DWORD,
257 ) -> BOOL;
258 pub fn CredWriteDomainCredentialsA(
259 TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA,
260 Credential: PCREDENTIALA,
261 Flags: DWORD,
262 ) -> BOOL;
263}
264pub const CRED_CACHE_TARGET_INFORMATION: DWORD = 0x1;
265extern "system" {
266 pub fn CredReadDomainCredentialsW(
267 TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW,
268 Flags: DWORD,
269 Count: *mut DWORD,
270 Credential: *mut *mut PCREDENTIALW,
271 ) -> BOOL;
272 pub fn CredReadDomainCredentialsA(
273 TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA,
274 Flags: DWORD,
275 Count: *mut DWORD,
276 Credential: *mut *mut PCREDENTIALA,
277 ) -> BOOL;
278 pub fn CredDeleteW(
279 TargetName: LPCWSTR,
280 Type: DWORD,
281 Flags: DWORD,
282 ) -> BOOL;
283 pub fn CredDeleteA(
284 TargetName: LPCSTR,
285 Type: DWORD,
286 Flags: DWORD,
287 ) -> BOOL;
288 pub fn CredRenameW(
289 OldTargetName: LPCWSTR,
290 NewTargetName: LPCWSTR,
291 Type: DWORD,
292 Flags: DWORD,
293 ) -> BOOL;
294 pub fn CredRenameA(
295 OldTargetName: LPCSTR,
296 NewTargetName: LPCSTR,
297 Type: DWORD,
298 Flags: DWORD,
299 ) -> BOOL;
300}
301pub const CRED_ALLOW_NAME_RESOLUTION: DWORD = 0x1;
302extern "system" {
303 pub fn CredGetTargetInfoW(
304 TargetName: LPCWSTR,
305 Flags: DWORD,
306 TargetInfo: *mut PCREDENTIAL_TARGET_INFORMATIONW,
307 ) -> BOOL;
308 pub fn CredGetTargetInfoA(
309 TargetName: LPCSTR,
310 Flags: DWORD,
311 TargetInfo: *mut PCREDENTIAL_TARGET_INFORMATIONA,
312 ) -> BOOL;
313 pub fn CredMarshalCredentialW(
314 CredType: CRED_MARSHAL_TYPE,
315 Credential: PVOID,
316 MarhaledCredential: *mut LPWSTR,
317 ) -> BOOL;
318 pub fn CredMarshalCredentialA(
319 CredType: CRED_MARSHAL_TYPE,
320 Credential: PVOID,
321 MarhaledCredential: *mut LPSTR,
322 ) -> BOOL;
323 pub fn CredUnmarshalCredentialW(
324 MarshaledCredential: LPCWSTR,
325 CredType: PCRED_MARSHAL_TYPE,
326 Credential: *mut PVOID,
327 ) -> BOOL;
328 pub fn CredUnmarshalCredentialA(
329 MarshaledCredential: LPCSTR,
330 CredType: PCRED_MARSHAL_TYPE,
331 Credential: *mut PVOID,
332 ) -> BOOL;
333 pub fn CredIsMarshaledCredentialW(
334 MarshaledCredential: LPCWSTR,
335 ) -> BOOL;
336 pub fn CredIsMarshaledCredentialA(
337 MarshaledCredential: LPCSTR,
338 ) -> BOOL;
339 pub fn CredUnPackAuthenticationBufferW(
340 dwFlags: DWORD,
341 pAuthBuffer: PVOID,
342 cbAuthBuffer: DWORD,
343 pszUserName: LPWSTR,
344 pcchlMaxUserName: *mut DWORD,
345 pszDomainName: LPWSTR,
346 pcchMaxDomainName: *mut DWORD,
347 pszPassword: LPWSTR,
348 pcchMaxPassword: *mut DWORD,
349 ) -> BOOL;
350 pub fn CredUnPackAuthenticationBufferA(
351 dwFlags: DWORD,
352 pAuthBuffer: PVOID,
353 cbAuthBuffer: DWORD,
354 pszUserName: LPSTR,
355 pcchlMaxUserName: *mut DWORD,
356 pszDomainName: LPSTR,
357 pcchMaxDomainName: *mut DWORD,
358 pszPassword: LPSTR,
359 pcchMaxPassword: *mut DWORD,
360 ) -> BOOL;
361 pub fn CredPackAuthenticationBufferW(
362 dwFlags: DWORD,
363 pszUserName: LPWSTR,
364 pszPassword: LPWSTR,
365 pPackedCredentials: PBYTE,
366 pcbPackedCredentials: *mut DWORD,
367 ) -> BOOL;
368 pub fn CredPackAuthenticationBufferA(
369 dwFlags: DWORD,
370 pszUserName: LPSTR,
371 pszPassword: LPSTR,
372 pPackedCredentials: PBYTE,
373 pcbPackedCredentials: *mut DWORD,
374 ) -> BOOL;
375 pub fn CredProtectW(
376 fAsSelf: BOOL,
377 pszCredentials: LPWSTR,
378 cchCredentials: DWORD,
379 pszProtectedCredentials: LPWSTR,
380 pcchMaxChars: *mut DWORD,
381 ProtectionType: *mut CRED_PROTECTION_TYPE,
382 ) -> BOOL;
383 pub fn CredProtectA(
384 fAsSelf: BOOL,
385 pszCredentials: LPSTR,
386 cchCredentials: DWORD,
387 pszProtectedCredentials: LPSTR,
388 pcchMaxChars: *mut DWORD,
389 ProtectionType: *mut CRED_PROTECTION_TYPE,
390 ) -> BOOL;
391 pub fn CredUnprotectW(
392 fAsSelf: BOOL,
393 pszProtectedCredentials: LPWSTR,
394 cchCredentials: DWORD,
395 pszCredentials: LPWSTR,
396 pcchMaxChars: *mut DWORD,
397 ) -> BOOL;
398 pub fn CredUnprotectA(
399 fAsSelf: BOOL,
400 pszProtectedCredentials: LPSTR,
401 cchCredentials: DWORD,
402 pszCredentials: LPSTR,
403 pcchMaxChars: *mut DWORD,
404 ) -> BOOL;
405 pub fn CredIsProtectedW(
406 pszProtectedCredentials: LPWSTR,
407 pProtectionType: *mut CRED_PROTECTION_TYPE,
408 ) -> BOOL;
409 pub fn CredIsProtectedA(
410 pszProtectedCredentials: LPSTR,
411 pProtectionType: *mut CRED_PROTECTION_TYPE,
412 ) -> BOOL;
413 pub fn CredFindBestCredentialW(
414 TargetName: LPCWSTR,
415 Type: DWORD,
416 Flags: DWORD,
417 Credential: *mut PCREDENTIALW,
418 ) -> BOOL;
419 pub fn CredFindBestCredentialA(
420 TargetName: LPCSTR,
421 Type: DWORD,
422 Flags: DWORD,
423 Credential: *mut PCREDENTIALA,
424 ) -> BOOL;
425 pub fn CredGetSessionTypes(
426 MaximumPersistCount: DWORD,
427 MaximumPersist: LPDWORD,
428 ) -> BOOL;
429 pub fn CredFree(
430 Buffer: PVOID,
431 );
432 pub fn CredUIPromptForCredentialsW(
433 pUiInfo: PCREDUI_INFOW,
434 pszTargetName: PCWSTR,
435 pContext: PCtxtHandle,
436 dwAuthError: DWORD,
437 pszUserName: PWSTR,
438 ulUserNameBufferSize: ULONG,
439 pszPassword: PWSTR,
440 ulPasswordBufferSize: ULONG,
441 save: *mut BOOL,
442 dwFlags: DWORD,
443 ) -> DWORD;
444 pub fn CredUIPromptForCredentialsA(
445 pUiInfo: PCREDUI_INFOA,
446 pszTargetName: PCSTR,
447 pContext: PCtxtHandle,
448 dwAuthError: DWORD,
449 pszUserName: PSTR,
450 ulUserNameBufferSize: ULONG,
451 pszPassword: PSTR,
452 ulPasswordBufferSize: ULONG,
453 save: *mut BOOL,
454 dwFlags: DWORD,
455 ) -> DWORD;
456 pub fn CredUIPromptForWindowsCredentialsW(
457 pUiInfo: PCREDUI_INFOW,
458 dwAuthError: DWORD,
459 pulAuthPackage: *mut ULONG,
460 pvInAuthBuffer: LPCVOID,
461 ulInAuthBufferSize: ULONG,
462 ppvOutAuthBuffer: *mut LPVOID,
463 pulOutAuthBufferSize: *mut ULONG,
464 pfSave: *mut BOOL,
465 dwFlags: DWORD,
466 ) -> DWORD;
467 pub fn CredUIPromptForWindowsCredentialsA(
468 pUiInfo: PCREDUI_INFOA,
469 dwAuthError: DWORD,
470 pulAuthPackage: *mut ULONG,
471 pvInAuthBuffer: LPCVOID,
472 ulInAuthBufferSize: ULONG,
473 ppvOutAuthBuffer: *mut LPVOID,
474 pulOutAuthBufferSize: *mut ULONG,
475 pfSave: *mut BOOL,
476 dwFlags: DWORD,
477 ) -> DWORD;
478 pub fn CredUIParseUserNameW(
479 userName: PCWSTR,
480 user: *mut WCHAR,
481 userBufferSize: ULONG,
482 domain: *mut WCHAR,
483 domainBufferSize: ULONG,
484 ) -> DWORD;
485 pub fn CredUIParseUserNameA(
486 userName: PCSTR,
487 user: *mut CHAR,
488 userBufferSize: ULONG,
489 domain: *mut CHAR,
490 domainBufferSize: ULONG,
491 ) -> DWORD;
492 pub fn CredUICmdLinePromptForCredentialsW(
493 pszTargetName: PCWSTR,
494 pContext: PCtxtHandle,
495 dwAuthError: DWORD,
496 UserName: PWSTR,
497 ulUserBufferSize: ULONG,
498 pszPassword: PWSTR,
499 ulPasswordBufferSize: ULONG,
500 pfSave: PBOOL,
501 dwFlags: DWORD,
502 ) -> DWORD;
503 pub fn CredUICmdLinePromptForCredentialsA(
504 pszTargetName: PCSTR,
505 pContext: PCtxtHandle,
506 dwAuthError: DWORD,
507 UserName: PSTR,
508 ulUserBufferSize: ULONG,
509 pszPassword: PSTR,
510 ulPasswordBufferSize: ULONG,
511 pfSave: PBOOL,
512 dwFlags: DWORD,
513 ) -> DWORD;
514 pub fn CredUIConfirmCredentialsW(
515 pszTargetName: PCWSTR,
516 bConfirm: BOOL,
517 ) -> DWORD;
518 pub fn CredUIConfirmCredentialsA(
519 pszTargetName: PCSTR,
520 bConfirm: BOOL,
521 ) -> DWORD;
522 pub fn CredUIStoreSSOCredW(
523 pszRealm: PCWSTR,
524 pszUsername: PCWSTR,
525 pszPassword: PCWSTR,
526 bPersist: BOOL,
527 ) -> DWORD;
528 pub fn CredUIReadSSOCredW(
529 pszRealm: PCWSTR,
530 ppszUsername: *mut PWSTR,
531 ) -> DWORD;
532}