Austin English : ntdsapi: Add DsCrackNamesA/W stubs.
Alexandre Julliard
julliard at winehq.org
Tue Apr 17 14:53:58 CDT 2018
Module: wine
Branch: master
Commit: 369c163929dc82c66b65077a5e28d0821ec8b382
URL: https://source.winehq.org/git/wine.git/?a=commit;h=369c163929dc82c66b65077a5e28d0821ec8b382
Author: Austin English <austinenglish at gmail.com>
Date: Fri Apr 13 16:11:47 2018 -0500
ntdsapi: Add DsCrackNamesA/W stubs.
Signed-off-by: Austin English <austinenglish at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
...-win-security-activedirectoryclient-l1-1-0.spec | 2 +-
dlls/ntdsapi/ntdsapi.c | 23 +++++++++
dlls/ntdsapi/ntdsapi.spec | 4 +-
include/ntdsapi.h | 59 ++++++++++++++++++++++
4 files changed, 85 insertions(+), 3 deletions(-)
diff --git a/dlls/api-ms-win-security-activedirectoryclient-l1-1-0/api-ms-win-security-activedirectoryclient-l1-1-0.spec b/dlls/api-ms-win-security-activedirectoryclient-l1-1-0/api-ms-win-security-activedirectoryclient-l1-1-0.spec
index eef1c40..8f897f7 100644
--- a/dlls/api-ms-win-security-activedirectoryclient-l1-1-0/api-ms-win-security-activedirectoryclient-l1-1-0.spec
+++ b/dlls/api-ms-win-security-activedirectoryclient-l1-1-0/api-ms-win-security-activedirectoryclient-l1-1-0.spec
@@ -1,5 +1,5 @@
@ stub DsBindWithSpnExW
-@ stub DsCrackNamesW
+@ stdcall DsCrackNamesW(ptr long long long long ptr ptr) ntdsapi.DsCrackNamesW
@ stub DsFreeDomainControllerInfoW
@ stub DsFreeNameResultW
@ stub DsFreePasswordCredentials
diff --git a/dlls/ntdsapi/ntdsapi.c b/dlls/ntdsapi/ntdsapi.c
index ee0c837..003b1a2 100644
--- a/dlls/ntdsapi/ntdsapi.c
+++ b/dlls/ntdsapi/ntdsapi.c
@@ -204,6 +204,9 @@ DWORD WINAPI DsServerRegisterSpnW(DS_SPN_WRITE_OP operation, LPCWSTR ServiceClas
return ERROR_CALL_NOT_IMPLEMENTED;
}
+/***********************************************************************
+ * DsClientMakeSpnForTargetServerW (NTDSAPI.@)
+ */
DWORD WINAPI DsClientMakeSpnForTargetServerW(LPCWSTR class, LPCWSTR name, DWORD *buflen, LPWSTR buf)
{
DWORD len;
@@ -229,3 +232,23 @@ DWORD WINAPI DsClientMakeSpnForTargetServerW(LPCWSTR class, LPCWSTR name, DWORD
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;
+}
diff --git a/dlls/ntdsapi/ntdsapi.spec b/dlls/ntdsapi/ntdsapi.spec
index 925cb71..bc7827d 100644
--- a/dlls/ntdsapi/ntdsapi.spec
+++ b/dlls/ntdsapi/ntdsapi.spec
@@ -8,8 +8,8 @@
@ stub DsBindWithSpnW
@ stub DsClientMakeSpnForTargetServerA
@ stdcall DsClientMakeSpnForTargetServerW(wstr wstr ptr ptr)
-@ stub DsCrackNamesA
-@ stub DsCrackNamesW
+@ stdcall DsCrackNamesA(ptr long long long long ptr ptr)
+@ stdcall DsCrackNamesW(ptr long long long long ptr ptr)
@ stub DsCrackSpn2A
@ stub DsCrackSpn2W
@ stub DsCrackSpn3W
diff --git a/include/ntdsapi.h b/include/ntdsapi.h
index 672ea63..099c205 100644
--- a/include/ntdsapi.h
+++ b/include/ntdsapi.h
@@ -35,6 +35,30 @@ DWORD WINAPI DsMakeSpnW(LPCWSTR, LPCWSTR, LPCWSTR, USHORT, LPCWSTR, DWORD*, LPWS
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
+{
DS_SPN_DNS_HOST = 0,
DS_SPN_DN_HOST = 1,
DS_SPN_NB_HOST = 2,
@@ -50,6 +74,41 @@ typedef enum
DS_SPN_DELETE_SPN_OP = 2
} 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 DsServerRegisterSpnW(DS_SPN_WRITE_OP operation, LPCWSTR ServiceClass, LPCWSTR UserObjectDN);
#define DsServerRegisterSpn WINELIB_NAME_AW(DsServerRegisterSpn)
More information about the wine-cvs
mailing list