Headers diff for credui.dll between 5.2.3790.3959-Windows 5.0 and 6.0.6002.18005-Windows 6.0 versions



 wincred.h (5.2.3790.3959-Windows 5.0)   wincred.h (6.0.6002.18005-Windows 6.0) 
//depot/vbl_srv_wcsmain/ds/published/inc/wincred.w#4 - integrate change 66730 (t ext)
/*++ BUILD Version: 0001 // Increment this if a change has global effects /*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 2000 Microsoft Corporation Copyright (c) 2000 Microsoft Corporation
Module Name: Module Name:
wincred.h wincred.h
Abstract: Abstract:
This module contains the public data structures and API definitions This module contains the public data structures and API definitions
needed for the Credential Manager. needed for the Credential Manager.
Author: Author:
Cliff Van Dyke (CliffV) 11-January-2000
Revision History: Revision History:
--*/ --*/
#ifndef _WINCRED_H_ #ifndef _WINCRED_H_
#define _WINCRED_H_ #define _WINCRED_H_
#if !defined(_ADVAPI32_) #if !defined(_ADVAPI32_)
#define WINADVAPI DECLSPEC_IMPORT #define WINADVAPI DECLSPEC_IMPORT
#else #else
#define WINADVAPI #define WINADVAPI
#endif #endif
#if !defined(CREDUIAPI) #if !defined(CREDUIAPI)
#if !defined(_CREDUI_) #if !defined(_CREDUI_)
#define CREDUIAPI DECLSPEC_IMPORT #define CREDUIAPI EXTERN_C DECLSPEC_IMPORT
#else #else
#define CREDUIAPI #define CREDUIAPI EXTERN_C
#endif #endif
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
// //
// Ensure PCtxtHandle is defined // Ensure PCtxtHandle is defined
// //
skipping to change at line 135 skipping to change at line 134
#define STATUS_ACCOUNT_LOCKED_OUT ((NTSTATUS)0xC0000234L) // ntsubauth #define STATUS_ACCOUNT_LOCKED_OUT ((NTSTATUS)0xC0000234L) // ntsubauth
#define STATUS_ACCOUNT_EXPIRED ((NTSTATUS)0xC0000193L) // ntsubauth #define STATUS_ACCOUNT_EXPIRED ((NTSTATUS)0xC0000193L) // ntsubauth
#define STATUS_LOGON_TYPE_NOT_GRANTED ((NTSTATUS)0xC000015BL) #define STATUS_LOGON_TYPE_NOT_GRANTED ((NTSTATUS)0xC000015BL)
// Don't require lmerr.h // Don't require lmerr.h
#define NERR_BASE 2100 #define NERR_BASE 2100
#define NERR_PasswordExpired (NERR_BASE+142) /* The password of this user has expired. */ #define NERR_PasswordExpired (NERR_BASE+142) /* The password of this user has expired. */
#define CREDUIP_IS_USER_PASSWORD_ERROR( _Status ) ( \ #define CREDUIP_IS_USER_PASSWORD_ERROR( _Status ) ( \
(_Status) == ERROR_LOGON_FAILURE || \ (_Status) == ERROR_LOGON_FAILURE || \
(_Status) == HRESULT_FROM_WIN32( ERROR_LOGON_FAILURE ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_LOGON_FAILURE ) || \
(_Status) == STATUS_LOGON_FAILURE || \ (_Status) == STATUS_LOGON_FAILURE || \
(_Status) == HRESULT_FROM_NT( STATUS_LOGON_FAILURE ) || \ (_Status) == HRESULT_FROM_NT( STATUS_LOGON_FAILURE ) || \
(_Status) == ERROR_ACCESS_DENIED || \ (_Status) == ERROR_ACCESS_DENIED || \
(_Status) == HRESULT_FROM_WIN32( ERROR_ACCESS_DENIED ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_ACCESS_DENIED ) || \
(_Status) == STATUS_ACCESS_DENIED || \ (_Status) == STATUS_ACCESS_DENIED || \
(_Status) == HRESULT_FROM_NT( STATUS_ACCESS_DENIED ) || \ (_Status) == HRESULT_FROM_NT( STATUS_ACCESS_DENIED ) || \
(_Status) == ERROR_INVALID_PASSWORD || \ (_Status) == ERROR_INVALID_PASSWORD || \
(_Status) == HRESULT_FROM_WIN32( ERROR_INVALID_PASSWORD ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_INVALID_PASSWORD ) || \
(_Status) == STATUS_WRONG_PASSWORD || \ (_Status) == STATUS_WRONG_PASSWORD || \
(_Status) == HRESULT_FROM_NT( STATUS_WRONG_PASSWORD ) || \ (_Status) == HRESULT_FROM_NT( STATUS_WRONG_PASSWORD ) || \
(_Status) == SEC_E_NO_CREDENTIALS || \ (_Status) == SEC_E_NO_CREDENTIALS || \
(_Status) == SEC_E_LOGON_DENIED \ (_Status) == SEC_E_LOGON_DENIED \
) )
#define CREDUIP_IS_DOWNGRADE_ERROR( _Status ) ( \ #define CREDUIP_IS_DOWNGRADE_ERROR( _Status ) ( \
(_Status) == ERROR_DOWNGRADE_DETECTED || \ (_Status) == ERROR_DOWNGRADE_DETECTED || \
(_Status) == HRESULT_FROM_WIN32( ERROR_DOWNGRADE_DETECTED ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_DOWNGRADE_DETECTED ) || \
(_Status) == STATUS_DOWNGRADE_DETECTED || \ (_Status) == STATUS_DOWNGRADE_DETECTED || \
(_Status) == HRESULT_FROM_NT( STATUS_DOWNGRADE_DETECTED ) \ (_Status) == HRESULT_FROM_NT( STATUS_DOWNGRADE_DETECTED ) \
) )
#define CREDUIP_IS_EXPIRED_ERROR( _Status ) ( \ #define CREDUIP_IS_EXPIRED_ERROR( _Status ) ( \
(_Status) == ERROR_PASSWORD_EXPIRED || \ (_Status) == ERROR_PASSWORD_EXPIRED || \
(_Status) == HRESULT_FROM_WIN32( ERROR_PASSWORD_EXPIRED ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_PASSWORD_EXPIRED ) || \
(_Status) == STATUS_PASSWORD_EXPIRED || \ (_Status) == STATUS_PASSWORD_EXPIRED || \
(_Status) == HRESULT_FROM_NT( STATUS_PASSWORD_EXPIRED ) || \ (_Status) == HRESULT_FROM_NT( STATUS_PASSWORD_EXPIRED ) || \
(_Status) == ERROR_PASSWORD_MUST_CHANGE || \ (_Status) == ERROR_PASSWORD_MUST_CHANGE || \
(_Status) == HRESULT_FROM_WIN32( ERROR_PASSWORD_MUST_CHANGE ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_PASSWORD_MUST_CHANGE ) || \
(_Status) == STATUS_PASSWORD_MUST_CHANGE || \ (_Status) == STATUS_PASSWORD_MUST_CHANGE || \
(_Status) == HRESULT_FROM_NT( STATUS_PASSWORD_MUST_CHANGE ) || \ (_Status) == HRESULT_FROM_NT( STATUS_PASSWORD_MUST_CHANGE ) || \
(_Status) == NERR_PasswordExpired || \ (_Status) == NERR_PasswordExpired || \
(_Status) == HRESULT_FROM_WIN32( NERR_PasswordExpired ) \ (_Status) == __HRESULT_FROM_WIN32( NERR_PasswordExpired ) \
) )
#define CREDUI_IS_AUTHENTICATION_ERROR( _Status ) ( \ #define CREDUI_IS_AUTHENTICATION_ERROR( _Status ) ( \
CREDUIP_IS_USER_PASSWORD_ERROR( _Status ) || \ CREDUIP_IS_USER_PASSWORD_ERROR( _Status ) || \
CREDUIP_IS_DOWNGRADE_ERROR( _Status ) || \ CREDUIP_IS_DOWNGRADE_ERROR( _Status ) || \
CREDUIP_IS_EXPIRED_ERROR( _Status ) \ CREDUIP_IS_EXPIRED_ERROR( _Status ) \
) )
#define CREDUI_NO_PROMPT_AUTHENTICATION_ERROR( _Status ) ( \ #define CREDUI_NO_PROMPT_AUTHENTICATION_ERROR( _Status ) ( \
(_Status) == ERROR_AUTHENTICATION_FIREWALL_FAILED || \ (_Status) == ERROR_AUTHENTICATION_FIREWALL_FAILED || \
(_Status) == HRESULT_FROM_WIN32( ERROR_AUTHENTICATION_FIREWALL_FAILED ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_AUTHENTICATION_FIREWALL_FAILED ) || \
(_Status) == STATUS_AUTHENTICATION_FIREWALL_FAILED || \ (_Status) == STATUS_AUTHENTICATION_FIREWALL_FAILED || \
(_Status) == HRESULT_FROM_NT( STATUS_AUTHENTICATION_FIREWALL_FAILED ) || \ (_Status) == HRESULT_FROM_NT( STATUS_AUTHENTICATION_FIREWALL_FAILED ) || \
(_Status) == ERROR_ACCOUNT_DISABLED || \ (_Status) == ERROR_ACCOUNT_DISABLED || \
(_Status) == HRESULT_FROM_WIN32( ERROR_ACCOUNT_DISABLED ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_ACCOUNT_DISABLED ) || \
(_Status) == STATUS_ACCOUNT_DISABLED || \ (_Status) == STATUS_ACCOUNT_DISABLED || \
(_Status) == HRESULT_FROM_NT( STATUS_ACCOUNT_DISABLED ) || \ (_Status) == HRESULT_FROM_NT( STATUS_ACCOUNT_DISABLED ) || \
(_Status) == ERROR_ACCOUNT_RESTRICTION || \ (_Status) == ERROR_ACCOUNT_RESTRICTION || \
(_Status) == HRESULT_FROM_WIN32( ERROR_ACCOUNT_RESTRICTION ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_ACCOUNT_RESTRICTION ) || \
(_Status) == STATUS_ACCOUNT_RESTRICTION || \ (_Status) == STATUS_ACCOUNT_RESTRICTION || \
(_Status) == HRESULT_FROM_NT( STATUS_ACCOUNT_RESTRICTION ) || \ (_Status) == HRESULT_FROM_NT( STATUS_ACCOUNT_RESTRICTION ) || \
(_Status) == ERROR_ACCOUNT_LOCKED_OUT || \ (_Status) == ERROR_ACCOUNT_LOCKED_OUT || \
(_Status) == HRESULT_FROM_WIN32( ERROR_ACCOUNT_LOCKED_OUT ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_ACCOUNT_LOCKED_OUT ) || \
(_Status) == STATUS_ACCOUNT_LOCKED_OUT || \ (_Status) == STATUS_ACCOUNT_LOCKED_OUT || \
(_Status) == HRESULT_FROM_NT( STATUS_ACCOUNT_LOCKED_OUT ) || \ (_Status) == HRESULT_FROM_NT( STATUS_ACCOUNT_LOCKED_OUT ) || \
(_Status) == ERROR_ACCOUNT_EXPIRED || \ (_Status) == ERROR_ACCOUNT_EXPIRED || \
(_Status) == HRESULT_FROM_WIN32( ERROR_ACCOUNT_EXPIRED ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_ACCOUNT_EXPIRED ) || \
(_Status) == STATUS_ACCOUNT_EXPIRED || \ (_Status) == STATUS_ACCOUNT_EXPIRED || \
(_Status) == HRESULT_FROM_NT( STATUS_ACCOUNT_EXPIRED ) || \ (_Status) == HRESULT_FROM_NT( STATUS_ACCOUNT_EXPIRED ) || \
(_Status) == ERROR_LOGON_TYPE_NOT_GRANTED || \ (_Status) == ERROR_LOGON_TYPE_NOT_GRANTED || \
(_Status) == HRESULT_FROM_WIN32( ERROR_LOGON_TYPE_NOT_GRANTED ) || \ (_Status) == __HRESULT_FROM_WIN32( ERROR_LOGON_TYPE_NOT_GRANTED ) || \
(_Status) == STATUS_LOGON_TYPE_NOT_GRANTED || \ (_Status) == STATUS_LOGON_TYPE_NOT_GRANTED || \
(_Status) == HRESULT_FROM_NT( STATUS_LOGON_TYPE_NOT_GRANTED ) \ (_Status) == HRESULT_FROM_NT( STATUS_LOGON_TYPE_NOT_GRANTED ) \
) )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Structures // Structures
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// Credential Attribute // Credential Attribute
skipping to change at line 224 skipping to change at line 223
// Maximum length of the UserName field. The worst case is <User>@<DnsDomain> // Maximum length of the UserName field. The worst case is <User>@<DnsDomain>
#define CRED_MAX_USERNAME_LENGTH (256+1+256) #define CRED_MAX_USERNAME_LENGTH (256+1+256)
// Maximum length of the TargetName field for CRED_TYPE_GENERIC (in characters) // Maximum length of the TargetName field for CRED_TYPE_GENERIC (in characters)
#define CRED_MAX_GENERIC_TARGET_NAME_LENGTH 32767 #define CRED_MAX_GENERIC_TARGET_NAME_LENGTH 32767
// Maximum length of the TargetName field for CRED_TYPE_DOMAIN_* (in characters) // Maximum length of the TargetName field for CRED_TYPE_DOMAIN_* (in characters)
// Largest one is <DfsRoot>\<DfsShare> // Largest one is <DfsRoot>\<DfsShare>
#define CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (256+1+80) #define CRED_MAX_DOMAIN_TARGET_NAME_LENGTH (256+1+80)
// Maximum length of a target namespace
#define CRED_MAX_TARGETNAME_NAMESPACE_LENGTH (256)
// Maximum length of a target attribute
#define CRED_MAX_TARGETNAME_ATTRIBUTE_LENGTH (256)
// Maximum size of the Credential Attribute Value field (in bytes) // Maximum size of the Credential Attribute Value field (in bytes)
#define CRED_MAX_VALUE_SIZE 256 #define CRED_MAX_VALUE_SIZE (256)
// Maximum number of attributes per credential // Maximum number of attributes per credential
#define CRED_MAX_ATTRIBUTES 64 #define CRED_MAX_ATTRIBUTES 64
typedef struct _CREDENTIAL_ATTRIBUTEA { typedef struct _CREDENTIAL_ATTRIBUTEA {
LPSTR Keyword; LPSTR Keyword;
DWORD Flags; DWORD Flags;
DWORD ValueSize; DWORD ValueSize;
LPBYTE Value; LPBYTE Value;
} CREDENTIAL_ATTRIBUTEA, *PCREDENTIAL_ATTRIBUTEA; } CREDENTIAL_ATTRIBUTEA, *PCREDENTIAL_ATTRIBUTEA;
skipping to change at line 267 skipping to change at line 272
#else #else
typedef CREDENTIAL_ATTRIBUTEA CREDENTIAL_ATTRIBUTE; typedef CREDENTIAL_ATTRIBUTEA CREDENTIAL_ATTRIBUTE;
typedef PCREDENTIAL_ATTRIBUTEA PCREDENTIAL_ATTRIBUTE; typedef PCREDENTIAL_ATTRIBUTEA PCREDENTIAL_ATTRIBUTE;
#endif // UNICODE #endif // UNICODE
// //
// Special values of the TargetName field // Special values of the TargetName field
// //
#define CRED_SESSION_WILDCARD_NAME_W L"*Session" #define CRED_SESSION_WILDCARD_NAME_W L"*Session"
#define CRED_SESSION_WILDCARD_NAME_A "*Session" #define CRED_SESSION_WILDCARD_NAME_A "*Session"
#define CRED_UNIVERSAL_WILDCARD_W L'*'
#define CRED_UNIVERSAL_WILDCARD_A '*'
#define CRED_SESSION_WILDCARD_NAME_LENGTH (sizeof(CRED_SESSION_WILDCARD_NAME_A)- 1) #define CRED_SESSION_WILDCARD_NAME_LENGTH (sizeof(CRED_SESSION_WILDCARD_NAME_A)- 1)
#define CRED_TARGETNAME_DOMAIN_NAMESPACE_W L"Domain"
#define CRED_TARGETNAME_DOMAIN_NAMESPACE_A "Domain"
#define CRED_TARGETNAME_DOMAIN_NAMESPACE_LENGTH (sizeof(CRED_TARGETNAME_DOMAIN_N
AMESPACE_A)-1)
#define CRED_UNIVERSAL_WILDCARD_W L'*'
#define CRED_UNIVERSAL_WILDCARD_A '*'
#define CRED_TARGETNAME_LEGACYGENERIC_NAMESPACE_W L"LegacyGeneric"
#define CRED_TARGETNAME_LEGACYGENERIC_NAMESPACE_A "LegacyGeneric"
#define CRED_TARGETNAME_LEGACYGENERIC_NAMESPACE_LENGTH (sizeof(CRED_TARGETNAME_L
EGACYGENERIC_NAMESPACE_A)-1)
#define CRED_TARGETNAME_NAMESPACE_SEPERATOR_W L':'
#define CRED_TARGETNAME_NAMESPACE_SEPERATOR_A ':'
#define CRED_TARGETNAME_ATTRIBUTE_SEPERATOR_W L'='
#define CRED_TARGETNAME_ATTRIBUTE_SEPERATOR_A '='
#define CRED_TARGETNAME_ATTRIBUTE_TARGET_W L"target"
#define CRED_TARGETNAME_ATTRIBUTE_TARGET_A "target"
#define CRED_TARGETNAME_ATTRIBUTE_TARGET_LENGTH (sizeof(CRED_TARGETNAME_ATTRIBUT
E_TARGET_A)-1)
#define CRED_TARGETNAME_ATTRIBUTE_NAME_W L"name"
#define CRED_TARGETNAME_ATTRIBUTE_NAME_A "name"
#define CRED_TARGETNAME_ATTRIBUTE_NAME_LENGTH (sizeof(CRED_TARGETNAME_ATTRIBUTE_
NAME_A)-1)
#define CRED_TARGETNAME_ATTRIBUTE_BATCH_W L"batch"
#define CRED_TARGETNAME_ATTRIBUTE_BATCH_A "batch"
#define CRED_TARGETNAME_ATTRIBUTE_BATCH_LENGTH (sizeof(CRED_TARGETNAME_ATTRIBUTE
_BATCH_A)-1)
#define CRED_TARGETNAME_ATTRIBUTE_INTERACTIVE_W L"interactive"
#define CRED_TARGETNAME_ATTRIBUTE_INTERACTIVE_A "interactive"
#define CRED_TARGETNAME_ATTRIBUTE_INTERACTIVE_LENGTH (sizeof(CRED_TARGETNAME_ATT
RIBUTE_INTERACTIVE_A)-1)
#define CRED_TARGETNAME_ATTRIBUTE_SERVICE_W L"service"
#define CRED_TARGETNAME_ATTRIBUTE_SERVICE_A "service"
#define CRED_TARGETNAME_ATTRIBUTE_SERVICE_LENGTH (sizeof(CRED_TARGETNAME_ATTRIBU
TE_SERVICE_A)-1)
#define CRED_TARGETNAME_ATTRIBUTE_NETWORK_W L"network"
#define CRED_TARGETNAME_ATTRIBUTE_NETWORK_A "network"
#define CRED_TARGETNAME_ATTRIBUTE_NETWORK_LENGTH (sizeof(CRED_TARGETNAME_ATTRIBU
TE_NETWORK_A)-1)
#define CRED_TARGETNAME_ATTRIBUTE_NETWORKCLEARTEXT_W L"networkcleartext"
#define CRED_TARGETNAME_ATTRIBUTE_NETWORKCLEARTEXT_A "networkcleartext"
#define CRED_TARGETNAME_ATTRIBUTE_NETWORKCLEARTEXT_LENGTH (sizeof(CRED_TARGETNAM
E_ATTRIBUTE_NETWORKCLEARTEXT_A)-1)
#define CRED_TARGETNAME_ATTRIBUTE_REMOTEINTERACTIVE_W L"remoteinteractive"
#define CRED_TARGETNAME_ATTRIBUTE_REMOTEINTERACTIVE_A "remoteinteractive"
#define CRED_TARGETNAME_ATTRIBUTE_REMOTEINTERACTIVE_LENGTH (sizeof(CRED_TARGETNA
ME_ATTRIBUTE_REMOTEINTERACTIVE_A)-1)
#define CRED_TARGETNAME_ATTRIBUTE_CACHEDINTERACTIVE_W L"cachedinteractive"
#define CRED_TARGETNAME_ATTRIBUTE_CACHEDINTERACTIVE_A "cachedinteractive"
#define CRED_TARGETNAME_ATTRIBUTE_CACHEDINTERACTIVE_LENGTH (sizeof(CRED_TARGETNA
ME_ATTRIBUTE_CACHEDINTERACTIVE_A)-1)
#ifdef UNICODE #ifdef UNICODE
#define CRED_SESSION_WILDCARD_NAME CRED_SESSION_WILDCARD_NAME_W #define CRED_SESSION_WILDCARD_NAME CRED_SESSION_WILDCARD_NAME_W
#define CRED_TARGETNAME_DOMAIN_NAMESPACE CRED_TARGETNAME_DOMAIN_NAMESPACE_W
#define CRED_UNIVERSAL_WILDCARD = CRED_UNIVERSAL_WILDCARD_W
#define CRED_TARGETNAME_NAMESPACE_SEPERATOR = CRED_TARGETNAME_NAMESPACE_SEPERATO
R_W
#define CRED_TARGETNAME_ATTRIBUTE_SEPERATOR = CRED_TARGETNAME_ATTRIBUTE_SEPERATO
R_W
#define CRED_TARGETNAME_ATTRIBUTE_NAME CRED_TARGETNAME_ATTRIBUTE_NAME_W
#define CRED_TARGETNAME_ATTRIBUTE_TARGET CRED_TARGETNAME_ATTRIBUTE_TARGET_W
#define CRED_TARGETNAME_ATTRIBUTE_BATCH CRED_TARGETNAME_ATTRIBUTE_BATCH_W
#define CRED_TARGETNAME_ATTRIBUTE_INTERACTIVE CRED_TARGETNAME_ATTRIBUTE_INTERACT
IVE_W
#define CRED_TARGETNAME_ATTRIBUTE_SERVICE CRED_TARGETNAME_ATTRIBUTE_SERVICE_W
#define CRED_TARGETNAME_ATTRIBUTE_NETWORK CRED_TARGETNAME_ATTRIBUTE_NETWORK_W
#define CRED_TARGETNAME_ATTRIBUTE_NETWORKCLEARTEXT CRED_TARGETNAME_ATTRIBUTE_NET
WORKCLEARTEXT_W
#define CRED_TARGETNAME_ATTRIBUTE_REMOTEINTERACTIVE CRED_TARGETNAME_ATTRIBUTE_RE
MOTEINTERACTIVE_W
#define CRED_TARGETNAME_ATTRIBUTE_CACHEDINTERACTIVE CRED_TARGETNAME_ATTRIBUTE_CA
CHEDINTERACTIVE_W
#else #else
#define CRED_SESSION_WILDCARD_NAME CRED_SESSION_WILDCARD_NAME_A #define CRED_SESSION_WILDCARD_NAME CRED_SESSION_WILDCARD_NAME_A
#define CRED_TARGETNAME_DOMAIN_NAMESPACE CRED_TARGETNAME_DOMAIN_NAMESPACE_A
#define CRED_UNIVERSAL_WILDCARD = CRED_UNIVERSAL_WILDCARD_A
#define CRED_TARGETNAME_NAMESPACE_SEPERATOR = CRED_TARGETNAME_NAMESPACE_SEPERATO
R_A
#define CRED_TARGETNAME_ATTRIBUTE_SEPERATOR = CRED_TARGETNAME_ATTRIBUTE_SEPERATO
R_A
#define CRED_TARGETNAME_ATTRIBUTE_NAME CRED_TARGETNAME_ATTRIBUTE_NAME_A
#define CRED_TARGETNAME_ATTRIBUTE_TARGET CRED_TARGETNAME_ATTRIBUTE_TARGET_A
#define CRED_TARGETNAME_ATTRIBUTE_BATCH CRED_TARGETNAME_ATTRIBUTE_BATCH_A
#define CRED_TARGETNAME_ATTRIBUTE_INTERACTIVE CRED_TARGETNAME_ATTRIBUTE_INTERACT
IVE_A
#define CRED_TARGETNAME_ATTRIBUTE_SERVICE CRED_TARGETNAME_ATTRIBUTE_SERVICE_A
#define CRED_TARGETNAME_ATTRIBUTE_NETWORK CRED_TARGETNAME_ATTRIBUTE_NETWORK_A
#define CRED_TARGETNAME_ATTRIBUTE_NETWORKCLEARTEXT CRED_TARGETNAME_ATTRIBUTE_NET
WORKCLEARTEXT_A
#define CRED_TARGETNAME_ATTRIBUTE_REMOTEINTERACTIVE CRED_TARGETNAME_ATTRIBUTE_RE
MOTEINTERACTIVE_A
#define CRED_TARGETNAME_ATTRIBUTE_CACHEDINTERACTIVE CRED_TARGETNAME_ATTRIBUTE_CA
CHEDINTERACTIVE_A
#endif // UNICODE #endif // UNICODE
// //
// Add\Extract Logon type from flags
//
#define CRED_LOGON_TYPES_MASK 0xF000 // Mask to get logon types
#define CredAppendLogonTypeToFlags(Flags, LogonType) (Flags) |= ((LogonType
) << 12)
#define CredGetLogonTypeFromFlags(Flags) ((SECURITY_LOGON_TYPE)
(((Flags) & CRED_LOGON_TYPES_MASK) >> 12))
#define CredRemoveLogonTypeFromFlags(Flags) (Flags) &= ~CRED_LOGON
_TYPES_MASK
//
// Values of the Credential Flags field. // Values of the Credential Flags field.
// //
#define CRED_FLAGS_PASSWORD_FOR_CERT 0x0001 #define CRED_FLAGS_PASSWORD_FOR_CERT 0x0001
#define CRED_FLAGS_PROMPT_NOW 0x0002 #define CRED_FLAGS_PROMPT_NOW 0x0002
#define CRED_FLAGS_USERNAME_TARGET 0x0004 #define CRED_FLAGS_USERNAME_TARGET 0x0004
#define CRED_FLAGS_OWF_CRED_BLOB 0x0008 #define CRED_FLAGS_OWF_CRED_BLOB 0x0008
#define CRED_FLAGS_VALID_FLAGS 0x000F // Mask of all valid flags #define CRED_FLAGS_REQUIRE_CONFIRMATION 0x0010
#define CRED_FLAGS_VALID_FLAGS 0xF01F // Mask of all valid flags
// //
// Values of the Credential Type field. // Values of the Credential Type field.
// //
#define CRED_TYPE_GENERIC 1 #define CRED_TYPE_GENERIC 1
#define CRED_TYPE_DOMAIN_PASSWORD 2 #define CRED_TYPE_DOMAIN_PASSWORD 2
#define CRED_TYPE_DOMAIN_CERTIFICATE 3 #define CRED_TYPE_DOMAIN_CERTIFICATE 3
#define CRED_TYPE_DOMAIN_VISIBLE_PASSWORD 4 #define CRED_TYPE_DOMAIN_VISIBLE_PASSWORD 4
#define CRED_TYPE_MAXIMUM 5 // Maximum supported cred type #define CRED_TYPE_GENERIC_CERTIFICATE 5
#define CRED_TYPE_MAXIMUM 6 // Maximum supported cred type
#define CRED_TYPE_MAXIMUM_EX (CRED_TYPE_MAXIMUM+1000) // Allow new application s to run on old OSes #define CRED_TYPE_MAXIMUM_EX (CRED_TYPE_MAXIMUM+1000) // Allow new application s to run on old OSes
// //
// Maximum size of the CredBlob field (in bytes) // Maximum size of the CredBlob field (in bytes)
// //
#define CRED_MAX_CREDENTIAL_BLOB_SIZE 512 #define CRED_MAX_CREDENTIAL_BLOB_SIZE 512
// //
// Values of the Credential Persist field // Values of the Credential Persist field
// //
skipping to change at line 317 skipping to change at line 401
// //
// A credential // A credential
// //
typedef struct _CREDENTIALA { typedef struct _CREDENTIALA {
DWORD Flags; DWORD Flags;
DWORD Type; DWORD Type;
LPSTR TargetName; LPSTR TargetName;
LPSTR Comment; LPSTR Comment;
FILETIME LastWritten; FILETIME LastWritten;
DWORD CredentialBlobSize; DWORD CredentialBlobSize;
LPBYTE CredentialBlob; __field_bcount(CredentialBlobSize) LPBYTE CredentialBlob;
DWORD Persist; DWORD Persist;
DWORD AttributeCount; DWORD AttributeCount;
PCREDENTIAL_ATTRIBUTEA Attributes; PCREDENTIAL_ATTRIBUTEA Attributes;
LPSTR TargetAlias; LPSTR TargetAlias;
LPSTR UserName; LPSTR UserName;
} CREDENTIALA, *PCREDENTIALA; } CREDENTIALA, *PCREDENTIALA;
typedef struct _CREDENTIALW { typedef struct _CREDENTIALW {
DWORD Flags; DWORD Flags;
DWORD Type; DWORD Type;
#ifdef MIDL_PASS #ifdef MIDL_PASS
[string] wchar_t *TargetName; [string,max_is(CRED_MAX_GENERIC_TARGET_NAME_LENGTH-1)] wchar_t *TargetName;
#else // MIDL_PASS #else // MIDL_PASS
LPWSTR TargetName; LPWSTR TargetName;
#endif // MIDL_PASS #endif // MIDL_PASS
#ifdef MIDL_PASS #ifdef MIDL_PASS
[string] wchar_t *Comment; [string,max_is(CRED_MAX_STRING_LENGTH-1)] wchar_t *Comment;
#else // MIDL_PASS #else // MIDL_PASS
LPWSTR Comment; LPWSTR Comment;
#endif // MIDL_PASS #endif // MIDL_PASS
FILETIME LastWritten; FILETIME LastWritten;
#ifdef MIDL_PASS #ifdef MIDL_PASS
[range(0,CRED_MAX_CREDENTIAL_BLOB_SIZE)] [range(0,CRED_MAX_CREDENTIAL_BLOB_SIZE)]
#endif // MIDL_PASS #endif // MIDL_PASS
DWORD CredentialBlobSize; DWORD CredentialBlobSize;
#ifdef MIDL_PASS #ifdef MIDL_PASS
[size_is(CredentialBlobSize)] [size_is(CredentialBlobSize)]
skipping to change at line 357 skipping to change at line 441
DWORD Persist; DWORD Persist;
#ifdef MIDL_PASS #ifdef MIDL_PASS
[range(0,CRED_MAX_ATTRIBUTES)] [range(0,CRED_MAX_ATTRIBUTES)]
#endif // MIDL_PASS #endif // MIDL_PASS
DWORD AttributeCount; DWORD AttributeCount;
#ifdef MIDL_PASS #ifdef MIDL_PASS
[size_is(AttributeCount)] [size_is(AttributeCount)]
#endif // MIDL_PASS #endif // MIDL_PASS
PCREDENTIAL_ATTRIBUTEW Attributes; PCREDENTIAL_ATTRIBUTEW Attributes;
#ifdef MIDL_PASS #ifdef MIDL_PASS
[string] wchar_t *TargetAlias; [string,max_is(CRED_MAX_STRING_LENGTH-1)] wchar_t *TargetAlias;
#else // MIDL_PASS #else // MIDL_PASS
LPWSTR TargetAlias; LPWSTR TargetAlias;
#endif // MIDL_PASS #endif // MIDL_PASS
#ifdef MIDL_PASS #ifdef MIDL_PASS
[string] wchar_t *UserName; [string,max_is(CRED_MAX_USERNAME_LENGTH-1)] wchar_t *UserName;
#else // MIDL_PASS #else // MIDL_PASS
LPWSTR UserName; LPWSTR UserName;
#endif // MIDL_PASS #endif // MIDL_PASS
} CREDENTIALW, *PCREDENTIALW; } CREDENTIALW, *PCREDENTIALW;
#ifdef UNICODE #ifdef UNICODE
typedef CREDENTIALW CREDENTIAL; typedef CREDENTIALW CREDENTIAL;
typedef PCREDENTIALW PCREDENTIAL; typedef PCREDENTIALW PCREDENTIAL;
#else #else
typedef CREDENTIALA CREDENTIAL; typedef CREDENTIALA CREDENTIAL;
skipping to change at line 386 skipping to change at line 470
// //
// Value of the Flags field in CREDENTIAL_TARGET_INFORMATION // Value of the Flags field in CREDENTIAL_TARGET_INFORMATION
// //
#define CRED_TI_SERVER_FORMAT_UNKNOWN 0x0001 // Don't know if server name is DNS or netbios format #define CRED_TI_SERVER_FORMAT_UNKNOWN 0x0001 // Don't know if server name is DNS or netbios format
#define CRED_TI_DOMAIN_FORMAT_UNKNOWN 0x0002 // Don't know if domain name is DNS or netbios format #define CRED_TI_DOMAIN_FORMAT_UNKNOWN 0x0002 // Don't know if domain name is DNS or netbios format
#define CRED_TI_ONLY_PASSWORD_REQUIRED 0x0004 // Server only requires a passwo rd and not a username #define CRED_TI_ONLY_PASSWORD_REQUIRED 0x0004 // Server only requires a passwo rd and not a username
#define CRED_TI_USERNAME_TARGET 0x0008 // TargetName is username #define CRED_TI_USERNAME_TARGET 0x0008 // TargetName is username
#define CRED_TI_CREATE_EXPLICIT_CRED 0x0010 // When creating a cred, create one named TargetInfo->TargetName #define CRED_TI_CREATE_EXPLICIT_CRED 0x0010 // When creating a cred, create one named TargetInfo->TargetName
#define CRED_TI_WORKGROUP_MEMBER 0x0020 // Indicates the machine is a me mber of a workgroup #define CRED_TI_WORKGROUP_MEMBER 0x0020 // Indicates the machine is a me mber of a workgroup
#define CRED_TI_VALID_FLAGS 0x003F #define CRED_TI_VALID_FLAGS 0xF07F
// //
// A credential target // A credential target
// //
typedef struct _CREDENTIAL_TARGET_INFORMATIONA { typedef struct _CREDENTIAL_TARGET_INFORMATIONA {
LPSTR TargetName; LPSTR TargetName;
LPSTR NetbiosServerName; LPSTR NetbiosServerName;
LPSTR DnsServerName; LPSTR DnsServerName;
LPSTR NetbiosDomainName; LPSTR NetbiosDomainName;
LPSTR DnsDomainName; LPSTR DnsDomainName;
LPSTR DnsTreeName; LPSTR DnsTreeName;
LPSTR PackageName; LPSTR PackageName;
ULONG Flags; ULONG Flags;
DWORD CredTypeCount; DWORD CredTypeCount;
LPDWORD CredTypes; LPDWORD CredTypes;
} CREDENTIAL_TARGET_INFORMATIONA, *PCREDENTIAL_TARGET_INFORMATIONA; } CREDENTIAL_TARGET_INFORMATIONA, *PCREDENTIAL_TARGET_INFORMATIONA;
typedef struct _CREDENTIAL_TARGET_INFORMATIONW { typedef struct _CREDENTIAL_TARGET_INFORMATIONW {
#ifdef MIDL_PASS #ifdef MIDL_PASS
[string] wchar_t *TargetName; [string,max_is(CRED_MAX_DOMAIN_TARGET_NAME_LENGTH-1)] wchar_t *TargetName;
[string] wchar_t *NetbiosServerName; [string,max_is(CRED_MAX_DOMAIN_TARGET_NAME_LENGTH-1)] wchar_t *NetbiosServer
[string] wchar_t *DnsServerName; Name;
[string] wchar_t *NetbiosDomainName; [string,max_is(CRED_MAX_DOMAIN_TARGET_NAME_LENGTH-1)] wchar_t *DnsServerName
[string] wchar_t *DnsDomainName; ;
[string] wchar_t *DnsTreeName; [string,max_is(CRED_MAX_DOMAIN_TARGET_NAME_LENGTH-1)] wchar_t *NetbiosDomain
[string] wchar_t *PackageName; Name;
[string,max_is(CRED_MAX_DOMAIN_TARGET_NAME_LENGTH-1)] wchar_t *DnsDomainName
;
[string,max_is(CRED_MAX_DOMAIN_TARGET_NAME_LENGTH-1)] wchar_t *DnsTreeName;
[string,max_is(CRED_MAX_STRING_LENGTH-1)] wchar_t *PackageName;
#else // MIDL_PASS #else // MIDL_PASS
LPWSTR TargetName; LPWSTR TargetName;
LPWSTR NetbiosServerName; LPWSTR NetbiosServerName;
LPWSTR DnsServerName; LPWSTR DnsServerName;
LPWSTR NetbiosDomainName; LPWSTR NetbiosDomainName;
LPWSTR DnsDomainName; LPWSTR DnsDomainName;
LPWSTR DnsTreeName; LPWSTR DnsTreeName;
LPWSTR PackageName; LPWSTR PackageName;
#endif // MIDL_PASS #endif // MIDL_PASS
ULONG Flags; ULONG Flags;
skipping to change at line 468 skipping to change at line 552
// //
// This credential can be pass to LsaLogonUser to ask it to find a credential wi th a // This credential can be pass to LsaLogonUser to ask it to find a credential wi th a
// TargetName of UserName. // TargetName of UserName.
// //
typedef struct _USERNAME_TARGET_CREDENTIAL_INFO { typedef struct _USERNAME_TARGET_CREDENTIAL_INFO {
LPWSTR UserName; LPWSTR UserName;
} USERNAME_TARGET_CREDENTIAL_INFO, *PUSERNAME_TARGET_CREDENTIAL_INFO; } USERNAME_TARGET_CREDENTIAL_INFO, *PUSERNAME_TARGET_CREDENTIAL_INFO;
// //
// Marshaled credential blob information.
//
typedef struct _BINARY_BLOB_CREDENTIAL_INFO {
ULONG cbBlob;
LPBYTE pbBlob;
} BINARY_BLOB_CREDENTIAL_INFO, *PBINARY_BLOB_CREDENTIAL_INFO;
//
// Credential type for credential marshaling routines // Credential type for credential marshaling routines
// //
typedef enum _CRED_MARSHAL_TYPE { typedef enum _CRED_MARSHAL_TYPE {
CertCredential = 1, CertCredential = 1,
UsernameTargetCredential UsernameTargetCredential,
BinaryBlobCredential
} CRED_MARSHAL_TYPE, *PCRED_MARSHAL_TYPE; } CRED_MARSHAL_TYPE, *PCRED_MARSHAL_TYPE;
// //
// Protection type for credential providers secret protection routines
//
typedef enum _CRED_PROTECTION_TYPE {
CredUnprotected,
CredUserProtection,
CredTrustedProtection
} CRED_PROTECTION_TYPE, *PCRED_PROTECTION_TYPE;
//
// Values for authentication buffers packing
//
#define CRED_PACK_PROTECTED_CREDENTIALS 0x1
#define CRED_PACK_WOW_BUFFER 0x2
#define CRED_PACK_GENERIC_CREDENTIALS 0x4
//
// Credential UI info // Credential UI info
// //
typedef struct _CREDUI_INFOA typedef struct _CREDUI_INFOA
{ {
DWORD cbSize; DWORD cbSize;
HWND hwndParent; HWND hwndParent;
PCSTR pszMessageText; PCSTR pszMessageText;
PCSTR pszCaptionText; PCSTR pszCaptionText;
HBITMAP hbmBanner; HBITMAP hbmBanner;
skipping to change at line 561 skipping to change at line 672
CREDUI_FLAGS_ALWAYS_SHOW_UI | \ CREDUI_FLAGS_ALWAYS_SHOW_UI | \
CREDUI_FLAGS_REQUIRE_SMARTCARD | \ CREDUI_FLAGS_REQUIRE_SMARTCARD | \
CREDUI_FLAGS_PASSWORD_ONLY_OK | \ CREDUI_FLAGS_PASSWORD_ONLY_OK | \
CREDUI_FLAGS_VALIDATE_USERNAME | \ CREDUI_FLAGS_VALIDATE_USERNAME | \
CREDUI_FLAGS_COMPLETE_USERNAME | \ CREDUI_FLAGS_COMPLETE_USERNAME | \
CREDUI_FLAGS_PERSIST | \ CREDUI_FLAGS_PERSIST | \
CREDUI_FLAGS_SERVER_CREDENTIAL | \ CREDUI_FLAGS_SERVER_CREDENTIAL | \
CREDUI_FLAGS_EXPECT_CONFIRMATION | \ CREDUI_FLAGS_EXPECT_CONFIRMATION | \
CREDUI_FLAGS_GENERIC_CREDENTIALS | \ CREDUI_FLAGS_GENERIC_CREDENTIALS | \
CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS | \ CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS | \
CREDUI_FLAGS_KEEP_USERNAME ) CREDUI_FLAGS_KEEP_USERNAME )
//
// Flags for CredUIPromptForWindowsCredentials and CPUS_CREDUI Usage Scenarios
//
#define CREDUIWIN_GENERIC 0x00000001 // Plain text username/p
assword is being requested
#define CREDUIWIN_CHECKBOX 0x00000002 // Show the Save Credent
ial checkbox
#define CREDUIWIN_AUTHPACKAGE_ONLY 0x00000010 // Only Cred Providers t
hat support the input auth package should enumerate
#define CREDUIWIN_IN_CRED_ONLY 0x00000020 // Only the incoming cre
d for the specific auth package should be enumerated
#define CREDUIWIN_ENUMERATE_ADMINS 0x00000100 // Cred Providers should
enumerate administrators only
#define CREDUIWIN_ENUMERATE_CURRENT_USER 0x00000200 // Only the incoming cre
d for the specific auth package should be enumerated
#define CREDUIWIN_PACK_32_WOW 0x10000000 // Tell the credential p
rovider it should be packing its Auth Blob 32 bit even though it is running 64 n
ative
#define CREDUIWIN_VALID_FLAGS ( \
CREDUIWIN_GENERIC | \
CREDUIWIN_CHECKBOX | \
CREDUIWIN_AUTHPACKAGE_ONLY | \
CREDUIWIN_IN_CRED_ONLY | \
CREDUIWIN_ENUMERATE_ADMINS | \
CREDUIWIN_ENUMERATE_CURRENT_USER | \
CREDUIWIN_PACK_32_WOW )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Functions // Functions
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// //
// Values of flags to CredWrite and CredWriteDomainCredentials // Values of flags to CredWrite and CredWriteDomainCredentials
// //
#define CRED_PRESERVE_CREDENTIAL_BLOB 0x1 #define CRED_PRESERVE_CREDENTIAL_BLOB 0x1
skipping to change at line 621 skipping to change at line 753
__reserved DWORD Flags, __reserved DWORD Flags,
__out PCREDENTIALA *Credential __out PCREDENTIALA *Credential
); );
#ifdef UNICODE #ifdef UNICODE
#define CredRead CredReadW #define CredRead CredReadW
#else #else
#define CredRead CredReadA #define CredRead CredReadA
#endif // UNICODE #endif // UNICODE
//
// Values of flags to CredEnumerate
//
#define CRED_ENUMERATE_ALL_CREDENTIALS 0x1
WINADVAPI WINADVAPI
BOOL BOOL
WINAPI WINAPI
CredEnumerateW ( CredEnumerateW (
__in LPCWSTR Filter, __in_opt LPCWSTR Filter,
__reserved DWORD Flags, __reserved DWORD Flags,
__out DWORD *Count, __out DWORD *Count,
__deref_out_ecount(*Count) PCREDENTIALW **Credential __deref_out_ecount(*Count) PCREDENTIALW **Credential
); );
WINADVAPI WINADVAPI
BOOL BOOL
WINAPI WINAPI
CredEnumerateA ( CredEnumerateA (
__in LPCSTR Filter, __in_opt LPCSTR Filter,
__reserved DWORD Flags, __reserved DWORD Flags,
__out DWORD *Count, __out DWORD *Count,
__deref_out_ecount(*Count) PCREDENTIALA **Credential __deref_out_ecount(*Count) PCREDENTIALA **Credential
); );
#ifdef UNICODE #ifdef UNICODE
#define CredEnumerate CredEnumerateW #define CredEnumerate CredEnumerateW
#else #else
#define CredEnumerate CredEnumerateA #define CredEnumerate CredEnumerateA
#endif // UNICODE #endif // UNICODE
skipping to change at line 851 skipping to change at line 989
CredIsMarshaledCredentialA( CredIsMarshaledCredentialA(
__in LPCSTR MarshaledCredential __in LPCSTR MarshaledCredential
); );
#ifdef UNICODE #ifdef UNICODE
#define CredIsMarshaledCredential CredIsMarshaledCredentialW #define CredIsMarshaledCredential CredIsMarshaledCredentialW
#else #else
#define CredIsMarshaledCredential CredIsMarshaledCredentialA #define CredIsMarshaledCredential CredIsMarshaledCredentialA
#endif // UNICODE #endif // UNICODE
CREDUIAPI
BOOL
WINAPI
CredUnPackAuthenticationBufferW(
__in DWORD dwFlags,
__in_bcount(cbAuthBuffer) PVOID pAuthBuffer,
__in DWORD cbAuthBuffer,
__out_ecount_opt(*pcchMaxUserName) LPWSTR pszUserName,
__inout DWORD* pcchMaxUserName,
__out_ecount_opt(*pcchMaxDomainName) LPWSTR pszDomainName,
__inout_opt DWORD* pcchMaxDomainName,
__out_ecount_opt(*pcchMaxPassword) LPWSTR pszPassword,
__inout DWORD* pcchMaxPassword
);
CREDUIAPI
BOOL
WINAPI
CredUnPackAuthenticationBufferA(
__in DWORD dwFlags,
__in_bcount(cbAuthBuffer) PVOID pAuthBuffer,
__in DWORD cbAuthBuffer,
__out_ecount_opt(*pcchMaxUserName) LPSTR pszUserName,
__inout DWORD* pcchlMaxUserName,
__out_ecount_opt(*pcchMaxDomainName) LPSTR pszDomainName,
__inout_opt DWORD* pcchMaxDomainName,
__out_ecount_opt(*pcchMaxPassword) LPSTR pszPassword,
__inout DWORD* pcchMaxPassword
);
#ifdef UNICODE
#define CredUnPackAuthenticationBuffer CredUnPackAuthenticationBufferW
#else
#define CredUnPackAuthenticationBuffer CredUnPackAuthenticationBufferA
#endif //UNICODE
CREDUIAPI
BOOL
WINAPI
CredPackAuthenticationBufferW(
__in DWORD dwFlags,
__in LPWSTR pszUserName,
__in LPWSTR pszPassword,
__out_bcount_opt(*pcbPackedCredentials) PBYTE pPackedCredentials,
__inout DWORD* pcbPackedCredentials
);
CREDUIAPI
BOOL
WINAPI
CredPackAuthenticationBufferA(
__in DWORD dwFlags,
__in LPSTR pszUserName,
__in LPSTR pszPassword,
__out_bcount_opt(*pcbPackedCredentials) PBYTE pPackedCredentials,
__inout DWORD* pcbPackedCredentials
);
#ifdef UNICODE
#define CredPackAuthenticationBuffer CredPackAuthenticationBufferW
#else
#define CredPackAuthenticationBuffer CredPackAuthenticationBufferA
#endif //UNICODE
WINADVAPI
BOOL
WINAPI
CredProtectW(
__in BOOL fAsSelf,
__in_ecount(cchCredentials) LPWSTR pszCredentials,
__in DWORD cchCredentials,
__out_ecount(*pcchMaxChars) LPWSTR pszProtectedCredentials,
__inout DWORD* pcchMaxChars,
__out_opt CRED_PROTECTION_TYPE* ProtectionType
);
WINADVAPI
BOOL
WINAPI
CredProtectA(
__in BOOL fAsSelf,
__in_ecount(cchCredentials) LPSTR pszCredentials,
__in DWORD cchCredentials,
__out_ecount(*pcchMaxChars) LPSTR pszProtectedCredentials,
__inout DWORD* pcchMaxChars,
__out_opt CRED_PROTECTION_TYPE* ProtectionType
);
#ifdef UNICODE
#define CredProtect CredProtectW
#else
#define CredProtect CredProtectA
#endif //UNICODE
WINADVAPI
BOOL
WINAPI
CredUnprotectW(
__in BOOL fAsSelf,
__in_ecount(cchProtectedCredentials) LPWSTR pszProtectedCredentials,
__in DWORD cchProtectedCredentials,
__out_ecount(*pcchMaxChars) LPWSTR pszCredentials,
__inout DWORD* pcchMaxChars
);
WINADVAPI
BOOL
WINAPI
CredUnprotectA(
__in BOOL fAsSelf,
__in_ecount(cchProtectedCredentials) LPSTR pszProtectedCredentials,
__in DWORD cchProtectedCredentials,
__out_ecount(*pcchMaxChars) LPSTR pszCredentials,
__inout DWORD* pcchMaxChars
);
#ifdef UNICODE
#define CredUnprotect CredUnprotectW
#else
#define CredUnprotect CredUnprotectA
#endif //UNICODE
WINADVAPI
BOOL
WINAPI
CredIsProtectedW(
__in LPWSTR pszProtectedCredentials,
__out CRED_PROTECTION_TYPE* pProtectionType
);
WINADVAPI
BOOL
WINAPI
CredIsProtectedA(
__in LPSTR pszProtectedCredentials,
__out CRED_PROTECTION_TYPE* pProtectionType
);
#ifdef UNICODE
#define CredIsProtected CredIsProtectedW
#else
#define CredIsProtected CredIsProtectedA
#endif //UNICODE
WINADVAPI
BOOL
WINAPI
CredFindBestCredentialW (
IN LPCWSTR TargetName,
IN DWORD Type,
IN DWORD Flags,
OUT PCREDENTIALW *Credential
);
WINADVAPI
BOOL
WINAPI
CredFindBestCredentialA (
IN LPCSTR TargetName,
IN DWORD Type,
IN DWORD Flags,
OUT PCREDENTIALA *Credential
);
#ifdef UNICODE
#define CredFindBestCredential CredFindBestCredentialW
#else
#define CredFindBestCredential CredFindBestCredentialA
#endif // UNICODE
WINADVAPI WINADVAPI
BOOL BOOL
WINAPI WINAPI
CredGetSessionTypes ( CredGetSessionTypes (
__in DWORD MaximumPersistCount, __in DWORD MaximumPersistCount,
__out LPDWORD MaximumPersist __out LPDWORD MaximumPersist
); );
WINADVAPI WINADVAPI
VOID VOID
skipping to change at line 874 skipping to change at line 1182
); );
CREDUIAPI CREDUIAPI
DWORD DWORD
WINAPI WINAPI
CredUIPromptForCredentialsW( CredUIPromptForCredentialsW(
__in_opt PCREDUI_INFOW pUiInfo, __in_opt PCREDUI_INFOW pUiInfo,
__in_opt PCWSTR pszTargetName, __in_opt PCWSTR pszTargetName,
__reserved PCtxtHandle pContext, __reserved PCtxtHandle pContext,
__in DWORD dwAuthError, __in DWORD dwAuthError,
__out_ecount(ulUserNameBufferSize) PWSTR pszUserName, __inout_ecount(ulUserNameBufferSize) PWSTR pszUserName,
__in ULONG ulUserNameBufferSize, __in ULONG ulUserNameBufferSize,
__out_ecount(ulPasswordBufferSize) PWSTR pszPassword, __inout_ecount(ulPasswordBufferSize) PWSTR pszPassword,
__in ULONG ulPasswordBufferSize, __in ULONG ulPasswordBufferSize,
__inout_opt BOOL *save, __inout_opt BOOL *save,
__in DWORD dwFlags __in DWORD dwFlags
); );
CREDUIAPI CREDUIAPI
DWORD DWORD
WINAPI WINAPI
CredUIPromptForCredentialsA( CredUIPromptForCredentialsA(
__in_opt PCREDUI_INFOA pUiInfo, __in_opt PCREDUI_INFOA pUiInfo,
__in_opt PCSTR pszTargetName, __in_opt PCSTR pszTargetName,
__reserved PCtxtHandle pContext, __reserved PCtxtHandle pContext,
__in DWORD dwAuthError, __in DWORD dwAuthError,
__out_ecount(ulUserNameBufferSize) PSTR pszUserName, __inout_ecount(ulUserNameBufferSize) PSTR pszUserName,
__in ULONG ulUserNameBufferSize, __in ULONG ulUserNameBufferSize,
__out_ecount(ulPasswordBufferSize) PSTR pszPassword, __inout_ecount(ulPasswordBufferSize) PSTR pszPassword,
__in ULONG ulPasswordBufferSize, __in ULONG ulPasswordBufferSize,
__inout_opt BOOL *save, __inout_opt BOOL *save,
__in DWORD dwFlags __in DWORD dwFlags
); );
#ifdef UNICODE #ifdef UNICODE
#define CredUIPromptForCredentials CredUIPromptForCredentialsW #define CredUIPromptForCredentials CredUIPromptForCredentialsW
#else #else
#define CredUIPromptForCredentials CredUIPromptForCredentialsA #define CredUIPromptForCredentials CredUIPromptForCredentialsA
#endif #endif
CREDUIAPI CREDUIAPI
DWORD DWORD
WINAPI WINAPI
CredUIPromptForWindowsCredentialsW(
__in_opt PCREDUI_INFOW pUiInfo,
__in DWORD dwAuthError,
__inout ULONG *pulAuthPackage,
__in_bcount_opt(ulInAuthBufferSize) LPCVOID pvInAuthBuffer,
__in ULONG ulInAuthBufferSize,
__deref_out_bcount_full(*pulOutAuthBufferSize) LPVOID * ppvOutAuthBuffer,
__out ULONG * pulOutAuthBufferSize,
__inout_opt BOOL *pfSave,
__in DWORD dwFlags
);
CREDUIAPI
DWORD
WINAPI
CredUIPromptForWindowsCredentialsA(
__in_opt PCREDUI_INFOA pUiInfo,
__in DWORD dwAuthError,
__inout ULONG *pulAuthPackage,
__in_bcount_opt(ulInAuthBufferSize) LPCVOID pvInAuthBuffer,
__in ULONG ulInAuthBufferSize,
__deref_out_bcount_full(*pulOutAuthBufferSize) LPVOID * ppvOutAuthBuffer,
__out ULONG * pulOutAuthBufferSize,
__inout_opt BOOL *pfSave,
__in DWORD dwFlags
);
#ifdef UNICODE
#define CredUIPromptForWindowsCredentials CredUIPromptForWindowsCredentialsW
#else
#define CredUIPromptForWindowsCredentials CredUIPromptForWindowsCredentialsA
#endif
CREDUIAPI
DWORD
WINAPI
CredUIParseUserNameW( CredUIParseUserNameW(
__in CONST WCHAR *UserName, __in CONST WCHAR *UserName,
__out_ecount(userBufferSize) WCHAR *user, __out_ecount(userBufferSize) WCHAR *user,
__in ULONG userBufferSize, __in ULONG userBufferSize,
__out_ecount(domainBufferSize) WCHAR *domain, __out_ecount(domainBufferSize) WCHAR *domain,
__in ULONG domainBufferSize __in ULONG domainBufferSize
); );
CREDUIAPI CREDUIAPI
DWORD DWORD
skipping to change at line 939 skipping to change at line 1283
#define CredUIParseUserName CredUIParseUserNameA #define CredUIParseUserName CredUIParseUserNameA
#endif #endif
CREDUIAPI CREDUIAPI
DWORD DWORD
WINAPI WINAPI
CredUICmdLinePromptForCredentialsW( CredUICmdLinePromptForCredentialsW(
__in_opt PCWSTR pszTargetName, __in_opt PCWSTR pszTargetName,
__reserved PCtxtHandle pContext, __reserved PCtxtHandle pContext,
__in DWORD dwAuthError, __in DWORD dwAuthError,
__out_ecount(ulUserBufferSize) PWSTR UserName, __inout_ecount(ulUserBufferSize) PWSTR UserName,
__in ULONG ulUserBufferSize, __in ULONG ulUserBufferSize,
__out_ecount(ulPasswordBufferSize) PWSTR pszPassword, __inout_ecount(ulPasswordBufferSize) PWSTR pszPassword,
__in ULONG ulPasswordBufferSize, __in ULONG ulPasswordBufferSize,
__inout_opt PBOOL pfSave, __inout_opt PBOOL pfSave,
__in DWORD dwFlags __in DWORD dwFlags
); );
CREDUIAPI CREDUIAPI
DWORD DWORD
WINAPI WINAPI
CredUICmdLinePromptForCredentialsA( CredUICmdLinePromptForCredentialsA(
__in_opt PCSTR pszTargetName, __in_opt PCSTR pszTargetName,
__reserved PCtxtHandle pContext, __reserved PCtxtHandle pContext,
__in DWORD dwAuthError, __in DWORD dwAuthError,
__out_ecount(ulUserBufferSize) PSTR UserName, __inout_ecount(ulUserBufferSize) PSTR UserName,
__in ULONG ulUserBufferSize, __in ULONG ulUserBufferSize,
__out_ecount(ulPasswordBufferSize) PSTR pszPassword, __inout_ecount(ulPasswordBufferSize) PSTR pszPassword,
__in ULONG ulPasswordBufferSize, __in ULONG ulPasswordBufferSize,
__inout_opt PBOOL pfSave, __inout_opt PBOOL pfSave,
__in DWORD dwFlags __in DWORD dwFlags
); );
#ifdef UNICODE #ifdef UNICODE
#define CredUICmdLinePromptForCredentials CredUICmdLinePromptForCredentialsW #define CredUICmdLinePromptForCredentials CredUICmdLinePromptForCredentialsW
#else #else
#define CredUICmdLinePromptForCredentials CredUICmdLinePromptForCredentialsA #define CredUICmdLinePromptForCredentials CredUICmdLinePromptForCredentialsA
#endif #endif
 End of changes. 51 change blocks. 
46 lines changed or deleted 428 lines changed or added

This html diff was produced by rfcdiff 1.41.