[PATCH 1/2] ntdsapi: add DsCrackNamesA/W stubs
Austin English
austinenglish at gmail.com
Thu Apr 5 19:40:31 CDT 2018
Signed-off-by: Austin English <austinenglish at gmail.com>
---
dlls/ntdsapi/ntdsapi.c | 23 +++++++++++++++++++
dlls/ntdsapi/ntdsapi.spec | 4 ++--
include/ntdsapi.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 81 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdsapi/ntdsapi.c b/dlls/ntdsapi/ntdsapi.c
index ee0c8379c3..afb6c7a652 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_RESULT *result)
+{
+ FIXME("(%p %u %u %u %u %s %p stub\n", handle, flags, offered, desired, num, wine_dbgstr_a(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_RESULT *result)
+{
+ FIXME("(%p %u %u %u %u %s %p stub\n", handle, flags, offered, desired, num, wine_dbgstr_w(names), result);
+ return ERROR_CALL_NOT_IMPLEMENTED;
+}
diff --git a/dlls/ntdsapi/ntdsapi.spec b/dlls/ntdsapi/ntdsapi.spec
index 925cb71358..16842232cf 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 str ptr)
+@ stdcall DsCrackNamesW(ptr long long long long wstr ptr)
@ stub DsCrackSpn2A
@ stub DsCrackSpn2W
@ stub DsCrackSpn3W
diff --git a/include/ntdsapi.h b/include/ntdsapi.h
index 672ea635d2..c3315070bb 100644
--- a/include/ntdsapi.h
+++ b/include/ntdsapi.h
@@ -33,6 +33,28 @@ DWORD WINAPI DsMakeSpnA(LPCSTR, LPCSTR, LPCSTR, USHORT, LPCSTR, DWORD*, LPSTR);
DWORD WINAPI DsMakeSpnW(LPCWSTR, LPCWSTR, LPCWSTR, USHORT, LPCWSTR, DWORD*, LPWSTR);
#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
{
DS_SPN_DNS_HOST = 0,
@@ -50,6 +72,40 @@ typedef enum
DS_SPN_DELETE_SPN_OP = 2
} DS_SPN_WRITE_OP;
+typedef struct {
+ DWORD status;
+ CHAR pDomain;
+ CHAR pName;
+} DS_NAME_RESULT_ITEMA, *PDS_NAME_RESULT_ITEMA;
+
+typedef struct {
+ DWORD cItems;
+ PDS_NAME_RESULT_ITEMA rItems;
+} DS_NAME_RESULTA, *PDS_NAME_RESULTA;
+
+typedef struct {
+ DWORD status;
+ WCHAR pDomain;
+ WCHAR pName;
+} DS_NAME_RESULT_ITEMW, *PDS_NAME_RESULT_ITEMW;
+
+typedef struct {
+ DWORD cItems;
+ PDS_NAME_RESULT_ITEMW rItems;
+} DS_NAME_RESULTW, *PDS_NAME_RESULTW;
+
+#ifdef UNICODE
+#define DS_NAME_RESULT DS_NAME_RESULTW
+#define PDS_NAME_RESULT PDS_NAME_RESULTW
+#define DS_NAME_RESULT_ITEM DS_NAME_RESULT_ITEMW
+#define PDS_NAME_RESULT_ITEM PDS_NAME_RESULT_ITEMW
+#else
+#define DS_NAME_RESULT DS_NAME_RESULTA
+#define PDS_NAME_RESULT PDS_NAME_RESULTA
+#define DS_NAME_RESULT_ITEM DS_NAME_RESULT_ITEMA
+#define PDS_NAME_RESULT_ITEM PDS_NAME_RESULT_ITEMA
+#endif
+
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)
--
2.16.1
More information about the wine-devel
mailing list