Reactos
at master 120 lines 3.7 kB view raw
1/* 2 * Copyright (C) 2006 Dmitry Timoshkov 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19#ifndef __WINE_NTDSAPI_H 20#define __WINE_NTDSAPI_H 21 22/* FIXME: #include <schedule.h> */ 23 24#ifdef __cplusplus 25extern "C" { 26#endif 27 28DWORD WINAPI DsClientMakeSpnForTargetServerA(LPCSTR, LPCSTR, DWORD*, LPSTR); 29DWORD WINAPI DsClientMakeSpnForTargetServerW(LPCWSTR, LPCWSTR, DWORD*, LPWSTR); 30#define DsClientMakeSpnForTargetServer WINELIB_NAME_AW(DsClientMakeSpnForTargetServer) 31 32DWORD WINAPI DsMakeSpnA(LPCSTR, LPCSTR, LPCSTR, USHORT, LPCSTR, DWORD*, LPSTR); 33DWORD WINAPI DsMakeSpnW(LPCWSTR, LPCWSTR, LPCWSTR, USHORT, LPCWSTR, DWORD*, LPWSTR); 34#define DsMakeSpn WINELIB_NAME_AW(DsMakeSpn) 35 36typedef enum 37{ 38 DS_NAME_NO_FLAGS = 0x0, 39 DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1, 40 DS_NAME_FLAG_EVAL_AT_DC = 0x2, 41 DS_NAME_FLAG_GCVERIFY = 0x4, 42 DS_NAME_FLAG_TRUST_REFERRAL = 0x8 43} DS_NAME_FLAGS; 44 45typedef enum 46{ 47 DS_UNKNOWN_NAME = 0, 48 DS_FQDN_1779_NAME = 1, 49 DS_NT4_ACCOUNT_NAME = 2, 50 DS_DISPLAY_NAME = 3, 51 DS_UNIQUE_ID_NAME = 6, 52 DS_CANONICAL_NAME = 7, 53 DS_USER_PRINCIPAL_NAME = 8, 54 DS_CANONICAL_NAME_EX = 9, 55 DS_SERVICE_PRINCIPAL_NAME = 10, 56 DS_SID_OR_SID_HISTORY_NAME = 11, 57 DS_DNS_DOMAIN_NAME = 12 58} DS_NAME_FORMAT; 59 60typedef enum 61{ 62 DS_SPN_DNS_HOST = 0, 63 DS_SPN_DN_HOST = 1, 64 DS_SPN_NB_HOST = 2, 65 DS_SPN_DOMAIN = 3, 66 DS_SPN_NB_DOMAIN = 4, 67 DS_SPN_SERVICE = 5 68} DS_SPN_NAME_TYPE; 69 70typedef enum 71{ 72 DS_SPN_ADD_SPN_OP = 0, 73 DS_SPN_REPLACE_SPN_OP = 1, 74 DS_SPN_DELETE_SPN_OP = 2 75} DS_SPN_WRITE_OP; 76 77typedef struct 78{ 79 DWORD status; 80 LPSTR pDomain; 81 LPSTR pName; 82} DS_NAME_RESULT_ITEMA, *PDS_NAME_RESULT_ITEMA; 83 84typedef struct 85{ 86 DWORD status; 87 LPWSTR pDomain; 88 LPWSTR pName; 89} DS_NAME_RESULT_ITEMW, *PDS_NAME_RESULT_ITEMW; 90 91DECL_WINELIB_TYPE_AW(DS_NAME_RESULT_ITEM) 92DECL_WINELIB_TYPE_AW(PDS_NAME_RESULT_ITEM) 93 94typedef struct 95{ 96 DWORD cItems; 97 PDS_NAME_RESULT_ITEMA rItems; 98} DS_NAME_RESULTA, *PDS_NAME_RESULTA; 99 100typedef struct 101{ 102 DWORD cItems; 103 PDS_NAME_RESULT_ITEMW rItems; 104} DS_NAME_RESULTW, *PDS_NAME_RESULTW; 105 106DECL_WINELIB_TYPE_AW(DS_NAME_RESULT) 107DECL_WINELIB_TYPE_AW(PDS_NAME_RESULT) 108 109DWORD 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); 110DWORD 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); 111#define DsCrackNames WINELIB_NAME_AW(DsCrackNames) 112DWORD WINAPI DsServerRegisterSpnA(DS_SPN_WRITE_OP operation, LPCSTR ServiceClass, LPCSTR UserObjectDN); 113DWORD WINAPI DsServerRegisterSpnW(DS_SPN_WRITE_OP operation, LPCWSTR ServiceClass, LPCWSTR UserObjectDN); 114#define DsServerRegisterSpn WINELIB_NAME_AW(DsServerRegisterSpn) 115 116#ifdef __cplusplus 117} 118#endif 119 120#endif /* __WINE_NTDSAPI_H */