| // Licensed under the Apache License, Version 2.0 |
| // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. |
| // All files in the project carrying such notice may not be copied, modified, or distributed |
| // except according to those terms. |
| //! Authentication API Prototypes and Definitions |
| use shared::minwindef::{ |
| BOOL, DWORD, FILETIME, LPBYTE, LPCVOID, LPDWORD, LPVOID, PBOOL, PBYTE, UCHAR, ULONG |
| }; |
| use shared::windef::{HBITMAP, HWND}; |
| use um::sspi::PCtxtHandle; |
| use um::winnt::{CHAR, LPCSTR, LPCWSTR, LPSTR, LPWSTR, PCSTR, PCWSTR, PSTR, PVOID, PWSTR, WCHAR}; |
| // STATUS_* |
| pub const NERR_BASE: DWORD = 2100; |
| pub const NERR_PasswordExpired: DWORD = NERR_BASE + 142; |
| pub const CRED_MAX_STRING_LENGTH: DWORD = 256; |
| pub const CRED_MAX_USERNAME_LENGTH: DWORD = 256 + 1 + 256; |
| pub const CRED_MAX_GENERIC_TARGET_NAME_LENGTH: DWORD = 32767; |
| pub const CRED_MAX_DOMAIN_TARGET_NAME_LENGTH: DWORD = 256 + 1 + 80; |
| pub const CRED_MAX_TARGETNAME_NAMESPACE_LENGTH: DWORD = 256; |
| pub const CRED_MAX_TARGETNAME_ATTRIBUTE_LENGTH: DWORD = 256; |
| pub const CRED_MAX_VALUE_SIZE: DWORD = 256; |
| pub const CRED_MAX_ATTRIBUTES: DWORD = 64; |
| STRUCT!{struct CREDENTIAL_ATTRIBUTEA { |
| Keyword: LPSTR, |
| Flags: DWORD, |
| ValueSize: DWORD, |
| Value: LPBYTE, |
| }} |
| pub type PCREDENTIAL_ATTRIBUTEA = *mut CREDENTIAL_ATTRIBUTEA; |
| STRUCT!{struct CREDENTIAL_ATTRIBUTEW { |
| Keyword: LPWSTR, |
| Flags: DWORD, |
| ValueSize: DWORD, |
| Value: LPBYTE, |
| }} |
| pub type PCREDENTIAL_ATTRIBUTEW = *mut CREDENTIAL_ATTRIBUTEW; |
| pub const CRED_LOGON_TYPES_MASK: DWORD = 0xF000; |
| pub const CRED_FLAGS_PASSWORD_FOR_CERT: DWORD = 0x0001; |
| pub const CRED_FLAGS_PROMPT_NOW: DWORD = 0x0002; |
| pub const CRED_FLAGS_USERNAME_TARGET: DWORD = 0x0004; |
| pub const CRED_FLAGS_OWF_CRED_BLOB: DWORD = 0x0008; |
| pub const CRED_FLAGS_REQUIRE_CONFIRMATION: DWORD = 0x0010; |
| pub const CRED_FLAGS_WILDCARD_MATCH: DWORD = 0x0020; |
| pub const CRED_FLAGS_VALID_FLAGS: DWORD = 0xF03F; |
| pub const CRED_FLAGS_VALID_INPUT_FLAGS: DWORD = 0xF01F; |
| pub const CRED_TYPE_GENERIC: DWORD = 1; |
| pub const CRED_TYPE_DOMAIN_PASSWORD: DWORD = 2; |
| pub const CRED_TYPE_DOMAIN_CERTIFICATE: DWORD = 3; |
| pub const CRED_TYPE_DOMAIN_VISIBLE_PASSWORD: DWORD = 4; |
| pub const CRED_TYPE_GENERIC_CERTIFICATE: DWORD = 5; |
| pub const CRED_TYPE_DOMAIN_EXTENDED: DWORD = 6; |
| pub const CRED_TYPE_MAXIMUM: DWORD = 7; |
| pub const CRED_TYPE_MAXIMUM_EX: DWORD = CRED_TYPE_MAXIMUM + 1000; |
| pub const CRED_MAX_CREDENTIAL_BLOB_SIZE: DWORD = 5 * 512; |
| pub const CRED_PERSIST_NONE: DWORD = 0; |
| pub const CRED_PERSIST_SESSION: DWORD = 1; |
| pub const CRED_PERSIST_LOCAL_MACHINE: DWORD = 2; |
| pub const CRED_PERSIST_ENTERPRISE: DWORD = 3; |
| STRUCT!{struct CREDENTIALA { |
| Flags: DWORD, |
| Type: DWORD, |
| TargetName: LPSTR, |
| Comment: LPSTR, |
| LastWritten: FILETIME, |
| CredentialBlobSize: DWORD, |
| CredentialBlob: LPBYTE, |
| Persist: DWORD, |
| AttributeCount: DWORD, |
| Attributes: PCREDENTIAL_ATTRIBUTEA, |
| TargetAlias: LPSTR, |
| UserName: LPSTR, |
| }} |
| pub type PCREDENTIALA = *mut CREDENTIALA; |
| STRUCT!{struct CREDENTIALW { |
| Flags: DWORD, |
| Type: DWORD, |
| TargetName: LPWSTR, |
| Comment: LPWSTR, |
| LastWritten: FILETIME, |
| CredentialBlobSize: DWORD, |
| CredentialBlob: LPBYTE, |
| Persist: DWORD, |
| AttributeCount: DWORD, |
| Attributes: PCREDENTIAL_ATTRIBUTEW, |
| TargetAlias: LPWSTR, |
| UserName: LPWSTR, |
| }} |
| pub type PCREDENTIALW = *mut CREDENTIALW; |
| pub const CRED_TI_SERVER_FORMAT_UNKNOWN: ULONG = 0x0001; |
| pub const CRED_TI_DOMAIN_FORMAT_UNKNOWN: ULONG = 0x0002; |
| pub const CRED_TI_ONLY_PASSWORD_REQUIRED: ULONG = 0x0004; |
| pub const CRED_TI_USERNAME_TARGET: ULONG = 0x0008; |
| pub const CRED_TI_CREATE_EXPLICIT_CRED: ULONG = 0x0010; |
| pub const CRED_TI_WORKGROUP_MEMBER: ULONG = 0x0020; |
| pub const CRED_TI_VALID_FLAGS: ULONG = 0xF07F; |
| STRUCT!{struct CREDENTIAL_TARGET_INFORMATIONA { |
| TargetName: LPSTR, |
| NetbiosServerName: LPSTR, |
| DnsServerName: LPSTR, |
| NetbiosDomainName: LPSTR, |
| DnsDomainName: LPSTR, |
| DnsTreeName: LPSTR, |
| PackageName: LPSTR, |
| Flags: ULONG, |
| CredTypeCount: DWORD, |
| CredTypes: LPDWORD, |
| }} |
| pub type PCREDENTIAL_TARGET_INFORMATIONA = *mut CREDENTIAL_TARGET_INFORMATIONA; |
| STRUCT!{struct CREDENTIAL_TARGET_INFORMATIONW { |
| TargetName: LPWSTR, |
| NetbiosServerName: LPWSTR, |
| DnsServerName: LPWSTR, |
| NetbiosDomainName: LPWSTR, |
| DnsDomainName: LPWSTR, |
| DnsTreeName: LPWSTR, |
| PackageName: LPWSTR, |
| Flags: ULONG, |
| CredTypeCount: DWORD, |
| CredTypes: LPDWORD, |
| }} |
| pub type PCREDENTIAL_TARGET_INFORMATIONW = *mut CREDENTIAL_TARGET_INFORMATIONW; |
| pub const CERT_HASH_LENGTH: usize = 20; |
| STRUCT!{struct CERT_CREDENTIAL_INFO { |
| cbSize: ULONG, |
| rgbHashOfCert: [UCHAR; CERT_HASH_LENGTH], |
| }} |
| pub type PCERT_CREDENTIAL_INFO = *mut CERT_CREDENTIAL_INFO; |
| STRUCT!{struct USERNAME_TARGET_CREDENTIAL_INFO { |
| UserName: LPWSTR, |
| }} |
| pub type PUSERNAME_TARGET_CREDENTIAL_INFO = *mut USERNAME_TARGET_CREDENTIAL_INFO; |
| STRUCT!{struct BINARY_BLOB_CREDENTIAL_INFO { |
| cbBlob: ULONG, |
| pbBlob: LPBYTE, |
| }} |
| pub type PBINARY_BLOB_CREDENTIAL_INFO = *mut BINARY_BLOB_CREDENTIAL_INFO; |
| ENUM!{enum CRED_MARSHAL_TYPE { |
| CertCredential = 1, |
| UsernameTargetCredential, |
| BinaryBlobCredential, |
| UsernameForPackedCredentials, |
| }} |
| pub type PCRED_MARSHAL_TYPE = *mut CRED_MARSHAL_TYPE; |
| ENUM!{enum CRED_PROTECTION_TYPE { |
| CredUnprotected, |
| CredUserProtection, |
| CredTrustedProtection, |
| }} |
| pub type PCRED_PROTECTION_TYPE = *mut CRED_PROTECTION_TYPE; |
| pub const CRED_PACK_PROTECTED_CREDENTIALS: DWORD = 0x1; |
| pub const CRED_PACK_WOW_BUFFER: DWORD = 0x2; |
| pub const CRED_PACK_GENERIC_CREDENTIALS: DWORD = 0x4; |
| pub const CRED_PACK_ID_PROVIDER_CREDENTIALS: DWORD = 0x8; |
| STRUCT!{struct CREDUI_INFOA { |
| cbSize: DWORD, |
| hwndParent: HWND, |
| pszMessageText: PCSTR, |
| pszCaptionText: PCSTR, |
| hbmBanner: HBITMAP, |
| }} |
| pub type PCREDUI_INFOA = *mut CREDUI_INFOA; |
| STRUCT!{struct CREDUI_INFOW { |
| cbSize: DWORD, |
| hwndParent: HWND, |
| pszMessageText: PCWSTR, |
| pszCaptionText: PCWSTR, |
| hbmBanner: HBITMAP, |
| }} |
| pub type PCREDUI_INFOW = *mut CREDUI_INFOW; |
| pub const CREDUI_MAX_MESSAGE_LENGTH: DWORD = 1024; |
| pub const CREDUI_MAX_CAPTION_LENGTH: DWORD = 128; |
| pub const CREDUI_MAX_GENERIC_TARGET_LENGTH: DWORD = CRED_MAX_GENERIC_TARGET_NAME_LENGTH; |
| pub const CREDUI_MAX_DOMAIN_TARGET_LENGTH: DWORD = CRED_MAX_DOMAIN_TARGET_NAME_LENGTH; |
| pub const CREDUI_MAX_USERNAME_LENGTH: DWORD = CRED_MAX_USERNAME_LENGTH; |
| pub const CREDUI_MAX_PASSWORD_LENGTH: DWORD = 512 / 2; |
| pub const CREDUI_FLAGS_INCORRECT_PASSWORD: DWORD = 0x00001; |
| pub const CREDUI_FLAGS_DO_NOT_PERSIST: DWORD = 0x00002; |
| pub const CREDUI_FLAGS_REQUEST_ADMINISTRATOR: DWORD = 0x00004; |
| pub const CREDUI_FLAGS_EXCLUDE_CERTIFICATES: DWORD = 0x00008; |
| pub const CREDUI_FLAGS_REQUIRE_CERTIFICATE: DWORD = 0x00010; |
| pub const CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX: DWORD = 0x00040; |
| pub const CREDUI_FLAGS_ALWAYS_SHOW_UI: DWORD = 0x00080; |
| pub const CREDUI_FLAGS_REQUIRE_SMARTCARD: DWORD = 0x00100; |
| pub const CREDUI_FLAGS_PASSWORD_ONLY_OK: DWORD = 0x00200; |
| pub const CREDUI_FLAGS_VALIDATE_USERNAME: DWORD = 0x00400; |
| pub const CREDUI_FLAGS_COMPLETE_USERNAME: DWORD = 0x00800; |
| pub const CREDUI_FLAGS_PERSIST: DWORD = 0x01000; |
| pub const CREDUI_FLAGS_SERVER_CREDENTIAL: DWORD = 0x04000; |
| pub const CREDUI_FLAGS_EXPECT_CONFIRMATION: DWORD = 0x20000; |
| pub const CREDUI_FLAGS_GENERIC_CREDENTIALS: DWORD = 0x40000; |
| pub const CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS: DWORD = 0x80000; |
| pub const CREDUI_FLAGS_KEEP_USERNAME: DWORD = 0x100000; |
| pub const CREDUI_FLAGS_PROMPT_VALID: DWORD = CREDUI_FLAGS_INCORRECT_PASSWORD |
| | CREDUI_FLAGS_DO_NOT_PERSIST | CREDUI_FLAGS_REQUEST_ADMINISTRATOR |
| | CREDUI_FLAGS_EXCLUDE_CERTIFICATES | CREDUI_FLAGS_REQUIRE_CERTIFICATE |
| | CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX | CREDUI_FLAGS_ALWAYS_SHOW_UI |
| | CREDUI_FLAGS_REQUIRE_SMARTCARD | CREDUI_FLAGS_PASSWORD_ONLY_OK |
| | CREDUI_FLAGS_VALIDATE_USERNAME | CREDUI_FLAGS_COMPLETE_USERNAME | CREDUI_FLAGS_PERSIST |
| | CREDUI_FLAGS_SERVER_CREDENTIAL | CREDUI_FLAGS_EXPECT_CONFIRMATION |
| | CREDUI_FLAGS_GENERIC_CREDENTIALS | CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS |
| | CREDUI_FLAGS_KEEP_USERNAME; |
| pub const CREDUIWIN_GENERIC: DWORD = 0x00000001; |
| pub const CREDUIWIN_CHECKBOX: DWORD = 0x00000002; |
| pub const CREDUIWIN_AUTHPACKAGE_ONLY: DWORD = 0x00000010; |
| pub const CREDUIWIN_IN_CRED_ONLY: DWORD = 0x00000020; |
| pub const CREDUIWIN_ENUMERATE_ADMINS: DWORD = 0x00000100; |
| pub const CREDUIWIN_ENUMERATE_CURRENT_USER: DWORD = 0x00000200; |
| pub const CREDUIWIN_SECURE_PROMPT: DWORD = 0x00001000; |
| pub const CREDUIWIN_PREPROMPTING: DWORD = 0x00002000; |
| pub const CREDUIWIN_PACK_32_WOW: DWORD = 0x10000000; |
| pub const CREDUIWIN_VALID_FLAGS: DWORD = CREDUIWIN_GENERIC | CREDUIWIN_CHECKBOX |
| | CREDUIWIN_AUTHPACKAGE_ONLY | CREDUIWIN_IN_CRED_ONLY | CREDUIWIN_ENUMERATE_ADMINS |
| | CREDUIWIN_ENUMERATE_CURRENT_USER | CREDUIWIN_SECURE_PROMPT | CREDUIWIN_PREPROMPTING |
| | CREDUIWIN_PACK_32_WOW; |
| pub const CRED_PRESERVE_CREDENTIAL_BLOB: DWORD = 0x1; |
| extern "system" { |
| pub fn CredWriteW( |
| Credential: PCREDENTIALW, |
| Flags: DWORD, |
| ) -> BOOL; |
| pub fn CredWriteA( |
| Credential: PCREDENTIALA, |
| Flags: DWORD, |
| ) -> BOOL; |
| pub fn CredReadW( |
| TargetName: LPCWSTR, |
| Type: DWORD, |
| Flags: DWORD, |
| Credential: *mut PCREDENTIALW, |
| ) -> BOOL; |
| pub fn CredReadA( |
| TargetName: LPCSTR, |
| Type: DWORD, |
| Flags: DWORD, |
| Credential: *mut PCREDENTIALA, |
| ) -> BOOL; |
| } |
| pub const CRED_ENUMERATE_ALL_CREDENTIALS: DWORD = 0x1; |
| extern "system" { |
| pub fn CredEnumerateW( |
| Filter: LPCWSTR, |
| Flags: DWORD, |
| Count: *mut DWORD, |
| Credential: *mut *mut PCREDENTIALW, |
| ) -> BOOL; |
| pub fn CredEnumerateA( |
| Filter: LPCSTR, |
| Flags: DWORD, |
| Count: *mut DWORD, |
| Credential: *mut *mut PCREDENTIALA, |
| ) -> BOOL; |
| pub fn CredWriteDomainCredentialsW( |
| TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, |
| Credential: PCREDENTIALW, |
| Flags: DWORD, |
| ) -> BOOL; |
| pub fn CredWriteDomainCredentialsA( |
| TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, |
| Credential: PCREDENTIALA, |
| Flags: DWORD, |
| ) -> BOOL; |
| } |
| pub const CRED_CACHE_TARGET_INFORMATION: DWORD = 0x1; |
| extern "system" { |
| pub fn CredReadDomainCredentialsW( |
| TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, |
| Flags: DWORD, |
| Count: *mut DWORD, |
| Credential: *mut *mut PCREDENTIALW, |
| ) -> BOOL; |
| pub fn CredReadDomainCredentialsA( |
| TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, |
| Flags: DWORD, |
| Count: *mut DWORD, |
| Credential: *mut *mut PCREDENTIALA, |
| ) -> BOOL; |
| pub fn CredDeleteW( |
| TargetName: LPCWSTR, |
| Type: DWORD, |
| Flags: DWORD, |
| ) -> BOOL; |
| pub fn CredDeleteA( |
| TargetName: LPCSTR, |
| Type: DWORD, |
| Flags: DWORD, |
| ) -> BOOL; |
| pub fn CredRenameW( |
| OldTargetName: LPCWSTR, |
| NewTargetName: LPCWSTR, |
| Type: DWORD, |
| Flags: DWORD, |
| ) -> BOOL; |
| pub fn CredRenameA( |
| OldTargetName: LPCSTR, |
| NewTargetName: LPCSTR, |
| Type: DWORD, |
| Flags: DWORD, |
| ) -> BOOL; |
| } |
| pub const CRED_ALLOW_NAME_RESOLUTION: DWORD = 0x1; |
| extern "system" { |
| pub fn CredGetTargetInfoW( |
| TargetName: LPCWSTR, |
| Flags: DWORD, |
| TargetInfo: *mut PCREDENTIAL_TARGET_INFORMATIONW, |
| ) -> BOOL; |
| pub fn CredGetTargetInfoA( |
| TargetName: LPCSTR, |
| Flags: DWORD, |
| TargetInfo: *mut PCREDENTIAL_TARGET_INFORMATIONA, |
| ) -> BOOL; |
| pub fn CredMarshalCredentialW( |
| CredType: CRED_MARSHAL_TYPE, |
| Credential: PVOID, |
| MarhaledCredential: *mut LPWSTR, |
| ) -> BOOL; |
| pub fn CredMarshalCredentialA( |
| CredType: CRED_MARSHAL_TYPE, |
| Credential: PVOID, |
| MarhaledCredential: *mut LPSTR, |
| ) -> BOOL; |
| pub fn CredUnmarshalCredentialW( |
| MarshaledCredential: LPCWSTR, |
| CredType: PCRED_MARSHAL_TYPE, |
| Credential: *mut PVOID, |
| ) -> BOOL; |
| pub fn CredUnmarshalCredentialA( |
| MarshaledCredential: LPCSTR, |
| CredType: PCRED_MARSHAL_TYPE, |
| Credential: *mut PVOID, |
| ) -> BOOL; |
| pub fn CredIsMarshaledCredentialW( |
| MarshaledCredential: LPCWSTR, |
| ) -> BOOL; |
| pub fn CredIsMarshaledCredentialA( |
| MarshaledCredential: LPCSTR, |
| ) -> BOOL; |
| pub fn CredUnPackAuthenticationBufferW( |
| dwFlags: DWORD, |
| pAuthBuffer: PVOID, |
| cbAuthBuffer: DWORD, |
| pszUserName: LPWSTR, |
| pcchlMaxUserName: *mut DWORD, |
| pszDomainName: LPWSTR, |
| pcchMaxDomainName: *mut DWORD, |
| pszPassword: LPWSTR, |
| pcchMaxPassword: *mut DWORD, |
| ) -> BOOL; |
| pub fn CredUnPackAuthenticationBufferA( |
| dwFlags: DWORD, |
| pAuthBuffer: PVOID, |
| cbAuthBuffer: DWORD, |
| pszUserName: LPSTR, |
| pcchlMaxUserName: *mut DWORD, |
| pszDomainName: LPSTR, |
| pcchMaxDomainName: *mut DWORD, |
| pszPassword: LPSTR, |
| pcchMaxPassword: *mut DWORD, |
| ) -> BOOL; |
| pub fn CredPackAuthenticationBufferW( |
| dwFlags: DWORD, |
| pszUserName: LPWSTR, |
| pszPassword: LPWSTR, |
| pPackedCredentials: PBYTE, |
| pcbPackedCredentials: *mut DWORD, |
| ) -> BOOL; |
| pub fn CredPackAuthenticationBufferA( |
| dwFlags: DWORD, |
| pszUserName: LPSTR, |
| pszPassword: LPSTR, |
| pPackedCredentials: PBYTE, |
| pcbPackedCredentials: *mut DWORD, |
| ) -> BOOL; |
| pub fn CredProtectW( |
| fAsSelf: BOOL, |
| pszCredentials: LPWSTR, |
| cchCredentials: DWORD, |
| pszProtectedCredentials: LPWSTR, |
| pcchMaxChars: *mut DWORD, |
| ProtectionType: *mut CRED_PROTECTION_TYPE, |
| ) -> BOOL; |
| pub fn CredProtectA( |
| fAsSelf: BOOL, |
| pszCredentials: LPSTR, |
| cchCredentials: DWORD, |
| pszProtectedCredentials: LPSTR, |
| pcchMaxChars: *mut DWORD, |
| ProtectionType: *mut CRED_PROTECTION_TYPE, |
| ) -> BOOL; |
| pub fn CredUnprotectW( |
| fAsSelf: BOOL, |
| pszProtectedCredentials: LPWSTR, |
| cchCredentials: DWORD, |
| pszCredentials: LPWSTR, |
| pcchMaxChars: *mut DWORD, |
| ) -> BOOL; |
| pub fn CredUnprotectA( |
| fAsSelf: BOOL, |
| pszProtectedCredentials: LPSTR, |
| cchCredentials: DWORD, |
| pszCredentials: LPSTR, |
| pcchMaxChars: *mut DWORD, |
| ) -> BOOL; |
| pub fn CredIsProtectedW( |
| pszProtectedCredentials: LPWSTR, |
| pProtectionType: *mut CRED_PROTECTION_TYPE, |
| ) -> BOOL; |
| pub fn CredIsProtectedA( |
| pszProtectedCredentials: LPSTR, |
| pProtectionType: *mut CRED_PROTECTION_TYPE, |
| ) -> BOOL; |
| pub fn CredFindBestCredentialW( |
| TargetName: LPCWSTR, |
| Type: DWORD, |
| Flags: DWORD, |
| Credential: *mut PCREDENTIALW, |
| ) -> BOOL; |
| pub fn CredFindBestCredentialA( |
| TargetName: LPCSTR, |
| Type: DWORD, |
| Flags: DWORD, |
| Credential: *mut PCREDENTIALA, |
| ) -> BOOL; |
| pub fn CredGetSessionTypes( |
| MaximumPersistCount: DWORD, |
| MaximumPersist: LPDWORD, |
| ) -> BOOL; |
| pub fn CredFree( |
| Buffer: PVOID, |
| ); |
| pub fn CredUIPromptForCredentialsW( |
| pUiInfo: PCREDUI_INFOW, |
| pszTargetName: PCWSTR, |
| pContext: PCtxtHandle, |
| dwAuthError: DWORD, |
| pszUserName: PWSTR, |
| ulUserNameBufferSize: ULONG, |
| pszPassword: PWSTR, |
| ulPasswordBufferSize: ULONG, |
| save: *mut BOOL, |
| dwFlags: DWORD, |
| ) -> DWORD; |
| pub fn CredUIPromptForCredentialsA( |
| pUiInfo: PCREDUI_INFOA, |
| pszTargetName: PCSTR, |
| pContext: PCtxtHandle, |
| dwAuthError: DWORD, |
| pszUserName: PSTR, |
| ulUserNameBufferSize: ULONG, |
| pszPassword: PSTR, |
| ulPasswordBufferSize: ULONG, |
| save: *mut BOOL, |
| dwFlags: DWORD, |
| ) -> DWORD; |
| pub fn CredUIPromptForWindowsCredentialsW( |
| pUiInfo: PCREDUI_INFOW, |
| dwAuthError: DWORD, |
| pulAuthPackage: *mut ULONG, |
| pvInAuthBuffer: LPCVOID, |
| ulInAuthBufferSize: ULONG, |
| ppvOutAuthBuffer: *mut LPVOID, |
| pulOutAuthBufferSize: *mut ULONG, |
| pfSave: *mut BOOL, |
| dwFlags: DWORD, |
| ) -> DWORD; |
| pub fn CredUIPromptForWindowsCredentialsA( |
| pUiInfo: PCREDUI_INFOA, |
| dwAuthError: DWORD, |
| pulAuthPackage: *mut ULONG, |
| pvInAuthBuffer: LPCVOID, |
| ulInAuthBufferSize: ULONG, |
| ppvOutAuthBuffer: *mut LPVOID, |
| pulOutAuthBufferSize: *mut ULONG, |
| pfSave: *mut BOOL, |
| dwFlags: DWORD, |
| ) -> DWORD; |
| pub fn CredUIParseUserNameW( |
| userName: PCWSTR, |
| user: *mut WCHAR, |
| userBufferSize: ULONG, |
| domain: *mut WCHAR, |
| domainBufferSize: ULONG, |
| ) -> DWORD; |
| pub fn CredUIParseUserNameA( |
| userName: PCSTR, |
| user: *mut CHAR, |
| userBufferSize: ULONG, |
| domain: *mut CHAR, |
| domainBufferSize: ULONG, |
| ) -> DWORD; |
| pub fn CredUICmdLinePromptForCredentialsW( |
| pszTargetName: PCWSTR, |
| pContext: PCtxtHandle, |
| dwAuthError: DWORD, |
| UserName: PWSTR, |
| ulUserBufferSize: ULONG, |
| pszPassword: PWSTR, |
| ulPasswordBufferSize: ULONG, |
| pfSave: PBOOL, |
| dwFlags: DWORD, |
| ) -> DWORD; |
| pub fn CredUICmdLinePromptForCredentialsA( |
| pszTargetName: PCSTR, |
| pContext: PCtxtHandle, |
| dwAuthError: DWORD, |
| UserName: PSTR, |
| ulUserBufferSize: ULONG, |
| pszPassword: PSTR, |
| ulPasswordBufferSize: ULONG, |
| pfSave: PBOOL, |
| dwFlags: DWORD, |
| ) -> DWORD; |
| pub fn CredUIConfirmCredentialsW( |
| pszTargetName: PCWSTR, |
| bConfirm: BOOL, |
| ) -> DWORD; |
| pub fn CredUIConfirmCredentialsA( |
| pszTargetName: PCSTR, |
| bConfirm: BOOL, |
| ) -> DWORD; |
| pub fn CredUIStoreSSOCredW( |
| pszRealm: PCWSTR, |
| pszUsername: PCWSTR, |
| pszPassword: PCWSTR, |
| bPersist: BOOL, |
| ) -> DWORD; |
| pub fn CredUIReadSSOCredW( |
| pszRealm: PCWSTR, |
| ppszUsername: *mut PWSTR, |
| ) -> DWORD; |
| } |