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