diff --git a/reactos/dll/win32/advapi32/advapi32.def b/reactos/dll/win32/advapi32/advapi32.def index 57116b66ce8..e6609d4a4ac 100644 --- a/reactos/dll/win32/advapi32/advapi32.def +++ b/reactos/dll/win32/advapi32/advapi32.def @@ -127,16 +127,16 @@ CredGetSessionTypes@8 ;CredMarshalCredentialW@12 ;CredProfileLoaded CredReadA@16 -;CredReadDomainCredentialsA -;CredReadDomainCredentialsW +CredReadDomainCredentialsA@16 +CredReadDomainCredentialsW@16 CredReadW@16 ;CredRenameA ;CredRenameW -;CredUnmarshalCredentialA -;CredUnmarshalCredentialW +CredUnmarshalCredentialA@12 +CredUnmarshalCredentialW@12 CredWriteA@8 -;CredWriteDomainCredentialsA -;CredWriteDomainCredentialsW +CredWriteDomainCredentialsA@12 +CredWriteDomainCredentialsW@12 CredWriteW@8 ;CredpConvertCredential ;CredpConvertTargetInfo diff --git a/reactos/dll/win32/advapi32/sec/cred.c b/reactos/dll/win32/advapi32/sec/cred.c index 13d29d56358..b1276176c9a 100644 --- a/reactos/dll/win32/advapi32/sec/cred.c +++ b/reactos/dll/win32/advapi32/sec/cred.c @@ -1699,3 +1699,65 @@ BOOL WINAPI CredGetSessionTypes(DWORD persistCount, LPDWORD persists) } return TRUE; } + +BOOL +WINAPI +CredReadDomainCredentialsW(PCREDENTIAL_TARGET_INFORMATIONW TargetInfo, + DWORD Flags, + DWORD *Count, + PCREDENTIALW **Credential) +{ + WARN("Not implemented\n"); + return FALSE; +} + +BOOL +WINAPI +CredReadDomainCredentialsA(PCREDENTIAL_TARGET_INFORMATIONA TargetInfo, + DWORD Flags, + DWORD *Count, + PCREDENTIALA **Credential) +{ + WARN("Not implemented\n"); + return FALSE; +} + +BOOL +WINAPI +CredWriteDomainCredentialsW(PCREDENTIAL_TARGET_INFORMATIONW TargetInfo, + PCREDENTIALW Credential, + DWORD Flags) +{ + WARN("Not implemented\n"); + return FALSE; +} + +BOOL +WINAPI +CredWriteDomainCredentialsA(PCREDENTIAL_TARGET_INFORMATIONA TargetInfo, + PCREDENTIALA Credential, + DWORD Flags) +{ + WARN("Not implemented\n"); + return FALSE; +} + +BOOL +WINAPI +CredUnmarshalCredentialW(LPCWSTR MarshaledCredential, + PCRED_MARSHAL_TYPE CredType, + PVOID *Credential) +{ + WARN("Not implemented\n"); + return FALSE; +} + +BOOL +WINAPI +CredUnmarshalCredentialA(LPCSTR MarshaledCredential, + PCRED_MARSHAL_TYPE CredType, + PVOID *Credential) +{ + WARN("Not implemented\n"); + return FALSE; +} diff --git a/reactos/include/psdk/wincred.h b/reactos/include/psdk/wincred.h index d041bb38418..e263644d0fd 100644 --- a/reactos/include/psdk/wincred.h +++ b/reactos/include/psdk/wincred.h @@ -107,6 +107,45 @@ typedef struct _CREDUI_INFOW HBITMAP hbmBanner; } CREDUI_INFOW, *PCREDUI_INFOW; +typedef enum _CRED_MARSHAL_TYPE { + CertCredential = 1, + UsernameTargetCredential +} CRED_MARSHAL_TYPE, *PCRED_MARSHAL_TYPE; + +typedef struct _CREDENTIAL_TARGET_INFORMATIONA { + LPSTR TargetName; + LPSTR NetbiosServerName; + LPSTR DnsServerName; + LPSTR NetbiosDomainName; + LPSTR DnsDomainName; + LPSTR DnsTreeName; + LPSTR PackageName; + ULONG Flags; + DWORD CredTypeCount; + LPDWORD CredTypes; +} CREDENTIAL_TARGET_INFORMATIONA, *PCREDENTIAL_TARGET_INFORMATIONA; + +typedef struct _CREDENTIAL_TARGET_INFORMATIONW { + LPWSTR TargetName; + LPWSTR NetbiosServerName; + LPWSTR DnsServerName; + LPWSTR NetbiosDomainName; + LPWSTR DnsDomainName; + LPWSTR DnsTreeName; + LPWSTR PackageName; + ULONG Flags; + DWORD CredTypeCount; + LPDWORD CredTypes; +} CREDENTIAL_TARGET_INFORMATIONW, *PCREDENTIAL_TARGET_INFORMATIONW; + +#ifdef UNICODE +typedef CREDENTIAL_TARGET_INFORMATIONW CREDENTIAL_TARGET_INFORMATION; +typedef PCREDENTIAL_TARGET_INFORMATIONW PCREDENTIAL_TARGET_INFORMATION; +#else +typedef CREDENTIAL_TARGET_INFORMATIONA CREDENTIAL_TARGET_INFORMATION; +typedef PCREDENTIAL_TARGET_INFORMATIONA PCREDENTIAL_TARGET_INFORMATION; +#endif /* UNICODE */ + DECL_WINELIB_TYPE_AW(CREDUI_INFO) DECL_WINELIB_TYPE_AW(PCREDUI_INFO) @@ -201,6 +240,23 @@ DWORD WINAPI CredUIStoreSSOCredW(PCWSTR,PCWSTR,PCWSTR,BOOL); DWORD WINAPI CredUIReadSSOCredW(PCWSTR,PWSTR*); /* Note: no CredUIReadSSOCredA in PSDK header */ +BOOL WINAPI CredReadDomainCredentialsW(PCREDENTIAL_TARGET_INFORMATIONW TargetInfo, DWORD Flags, DWORD *Count, PCREDENTIALW **Credential); +BOOL WINAPI CredReadDomainCredentialsA(PCREDENTIAL_TARGET_INFORMATIONA TargetInfo, DWORD Flags, DWORD *Count, PCREDENTIALA **Credential); +BOOL WINAPI CredWriteDomainCredentialsW(PCREDENTIAL_TARGET_INFORMATIONW TargetInfo, PCREDENTIALW Credential, DWORD Flags); +BOOL WINAPI CredWriteDomainCredentialsA(PCREDENTIAL_TARGET_INFORMATIONA TargetInfo, PCREDENTIALA Credential, DWORD Flags); +BOOL WINAPI CredUnmarshalCredentialW(LPCWSTR MarshaledCredential, PCRED_MARSHAL_TYPE CredType, PVOID *Credential); +BOOL WINAPI CredUnmarshalCredentialA(LPCSTR MarshaledCredential, PCRED_MARSHAL_TYPE CredType, PVOID *Credential); + +#ifdef UNICODE +#define CredReadDomainCredentials CredReadDomainCredentialsW +#define CredWriteDomainCredentials CredWriteDomainCredentialsW +#define CredUnmarshalCredential CredUnmarshalCredentialW +#else +#define CredReadDomainCredentials CredReadDomainCredentialsA +#define CredWriteDomainCredentials CredWriteDomainCredentialsA +#define CredUnmarshalCredential CredUnmarshalCredentialA +#endif /* UNICODE */ + #ifdef __cplusplus } #endif