ntdsapi: Add DsCrackNamesA/W stubs.

Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Austin English 2018-04-13 16:11:47 -05:00 committed by Alexandre Julliard
parent cf9eced885
commit 369c163929
4 changed files with 85 additions and 3 deletions

View File

@ -1,5 +1,5 @@
@ stub DsBindWithSpnExW @ stub DsBindWithSpnExW
@ stub DsCrackNamesW @ stdcall DsCrackNamesW(ptr long long long long ptr ptr) ntdsapi.DsCrackNamesW
@ stub DsFreeDomainControllerInfoW @ stub DsFreeDomainControllerInfoW
@ stub DsFreeNameResultW @ stub DsFreeNameResultW
@ stub DsFreePasswordCredentials @ stub DsFreePasswordCredentials

View File

@ -204,6 +204,9 @@ DWORD WINAPI DsServerRegisterSpnW(DS_SPN_WRITE_OP operation, LPCWSTR ServiceClas
return ERROR_CALL_NOT_IMPLEMENTED; return ERROR_CALL_NOT_IMPLEMENTED;
} }
/***********************************************************************
* DsClientMakeSpnForTargetServerW (NTDSAPI.@)
*/
DWORD WINAPI DsClientMakeSpnForTargetServerW(LPCWSTR class, LPCWSTR name, DWORD *buflen, LPWSTR buf) DWORD WINAPI DsClientMakeSpnForTargetServerW(LPCWSTR class, LPCWSTR name, DWORD *buflen, LPWSTR buf)
{ {
DWORD len; DWORD len;
@ -229,3 +232,23 @@ DWORD WINAPI DsClientMakeSpnForTargetServerW(LPCWSTR class, LPCWSTR name, DWORD
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
/***********************************************************************
* DsCrackNamesA (NTDSAPI.@)
*/
DWORD WINAPI DsCrackNamesA(HANDLE handle, DS_NAME_FLAGS flags, DS_NAME_FORMAT offered, DS_NAME_FORMAT desired,
DWORD num, const CHAR **names, PDS_NAME_RESULTA *result)
{
FIXME("(%p %u %u %u %u %p %p stub\n", handle, flags, offered, desired, num, names, result);
return ERROR_CALL_NOT_IMPLEMENTED;
}
/***********************************************************************
* DsCrackNamesW (NTDSAPI.@)
*/
DWORD WINAPI DsCrackNamesW(HANDLE handle, DS_NAME_FLAGS flags, DS_NAME_FORMAT offered, DS_NAME_FORMAT desired,
DWORD num, const WCHAR **names, PDS_NAME_RESULTW *result)
{
FIXME("(%p %u %u %u %u %p %p stub\n", handle, flags, offered, desired, num, names, result);
return ERROR_CALL_NOT_IMPLEMENTED;
}

View File

@ -8,8 +8,8 @@
@ stub DsBindWithSpnW @ stub DsBindWithSpnW
@ stub DsClientMakeSpnForTargetServerA @ stub DsClientMakeSpnForTargetServerA
@ stdcall DsClientMakeSpnForTargetServerW(wstr wstr ptr ptr) @ stdcall DsClientMakeSpnForTargetServerW(wstr wstr ptr ptr)
@ stub DsCrackNamesA @ stdcall DsCrackNamesA(ptr long long long long ptr ptr)
@ stub DsCrackNamesW @ stdcall DsCrackNamesW(ptr long long long long ptr ptr)
@ stub DsCrackSpn2A @ stub DsCrackSpn2A
@ stub DsCrackSpn2W @ stub DsCrackSpn2W
@ stub DsCrackSpn3W @ stub DsCrackSpn3W

View File

@ -33,6 +33,30 @@ DWORD WINAPI DsMakeSpnA(LPCSTR, LPCSTR, LPCSTR, USHORT, LPCSTR, DWORD*, LPSTR);
DWORD WINAPI DsMakeSpnW(LPCWSTR, LPCWSTR, LPCWSTR, USHORT, LPCWSTR, DWORD*, LPWSTR); DWORD WINAPI DsMakeSpnW(LPCWSTR, LPCWSTR, LPCWSTR, USHORT, LPCWSTR, DWORD*, LPWSTR);
#define DsMakeSpn WINELIB_NAME_AW(DsMakeSpn) #define DsMakeSpn WINELIB_NAME_AW(DsMakeSpn)
typedef enum
{
DS_NAME_NO_FLAGS = 0x0,
DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1,
DS_NAME_FLAG_EVAL_AT_DC = 0x2,
DS_NAME_FLAG_GCVERIFY = 0x4,
DS_NAME_FLAG_TRUST_REFERRAL = 0x8
} DS_NAME_FLAGS;
typedef enum
{
DS_UNKNOWN_NAME = 0,
DS_FQDN_1779_NAME = 1,
DS_NT4_ACCOUNT_NAME = 2,
DS_DISPLAY_NAME = 3,
DS_UNIQUE_ID_NAME = 6,
DS_CANONICAL_NAME = 7,
DS_USER_PRINCIPAL_NAME = 8,
DS_CANONICAL_NAME_EX = 9,
DS_SERVICE_PRINCIPAL_NAME = 10,
DS_SID_OR_SID_HISTORY_NAME = 11,
DS_DNS_DOMAIN_NAME = 12
} DS_NAME_FORMAT;
typedef enum typedef enum
{ {
DS_SPN_DNS_HOST = 0, DS_SPN_DNS_HOST = 0,
@ -50,6 +74,41 @@ typedef enum
DS_SPN_DELETE_SPN_OP = 2 DS_SPN_DELETE_SPN_OP = 2
} DS_SPN_WRITE_OP; } DS_SPN_WRITE_OP;
typedef struct
{
DWORD status;
LPSTR pDomain;
LPSTR pName;
} DS_NAME_RESULT_ITEMA, *PDS_NAME_RESULT_ITEMA;
typedef struct
{
DWORD status;
LPWSTR pDomain;
LPWSTR pName;
} DS_NAME_RESULT_ITEMW, *PDS_NAME_RESULT_ITEMW;
DECL_WINELIB_TYPE_AW(DS_NAME_RESULT_ITEM)
DECL_WINELIB_TYPE_AW(PDS_NAME_RESULT_ITEM)
typedef struct
{
DWORD cItems;
PDS_NAME_RESULT_ITEMA rItems;
} DS_NAME_RESULTA, *PDS_NAME_RESULTA;
typedef struct
{
DWORD cItems;
PDS_NAME_RESULT_ITEMW rItems;
} DS_NAME_RESULTW, *PDS_NAME_RESULTW;
DECL_WINELIB_TYPE_AW(DS_NAME_RESULT)
DECL_WINELIB_TYPE_AW(PDS_NAME_RESULT)
DWORD WINAPI DsCrackNamesA(HANDLE handle, DS_NAME_FLAGS flags, DS_NAME_FORMAT offered, DS_NAME_FORMAT desired, DWORD num, const CHAR **names, PDS_NAME_RESULTA *result);
DWORD WINAPI DsCrackNamesW(HANDLE handle, DS_NAME_FLAGS flags, DS_NAME_FORMAT offered, DS_NAME_FORMAT desired, DWORD num, const WCHAR **names, PDS_NAME_RESULTW *result);
#define DsCrackNames WINELIB_NAME_AW(DsCrackNames)
DWORD WINAPI DsServerRegisterSpnA(DS_SPN_WRITE_OP operation, LPCSTR ServiceClass, LPCSTR UserObjectDN); DWORD WINAPI DsServerRegisterSpnA(DS_SPN_WRITE_OP operation, LPCSTR ServiceClass, LPCSTR UserObjectDN);
DWORD WINAPI DsServerRegisterSpnW(DS_SPN_WRITE_OP operation, LPCWSTR ServiceClass, LPCWSTR UserObjectDN); DWORD WINAPI DsServerRegisterSpnW(DS_SPN_WRITE_OP operation, LPCWSTR ServiceClass, LPCWSTR UserObjectDN);
#define DsServerRegisterSpn WINELIB_NAME_AW(DsServerRegisterSpn) #define DsServerRegisterSpn WINELIB_NAME_AW(DsServerRegisterSpn)