| 1 | 
 /* | 
 
 
 
 
 
 | 2 | 
  * ntdsapi.h - Active Directory | 
 
 
 
 
 
 | 3 | 
  * | 
 
 
 
 
 
 | 4 | 
  * THIS SOFTWARE IS NOT COPYRIGHTED | 
 
 
 
 
 
 | 5 | 
  * | 
 
 
 
 
 
 | 6 | 
  * This source code is offered for use in the public domain.  You may use, | 
 
 
 
 
 
 | 7 | 
  * modify or distribute it freely. | 
 
 
 
 
 
 | 8 | 
  * | 
 
 
 
 
 
 | 9 | 
  * This code is distributed in the hope that it will be useful but | 
 
 
 
 
 
 | 10 | 
  * WITHOUT ANY WARRANTY.  ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | 
 
 
 
 
 
 | 11 | 
  * DISCLAIMED.  This includes but is not limited to warranties of | 
 
 
 
 
 
 | 12 | 
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
 
 
 
 
 
 | 13 | 
  * | 
 
 
 
 
 
 | 14 | 
  */ | 
 
 
 
 
 
 | 15 | 
 #ifndef _NTDSAPI_H | 
 
 
 
 
 
 | 16 | 
 #define _NTDSAPI_H | 
 
 
 
 
 
 | 17 | 
 #if __GNUC__ >= 3 | 
 
 
 
 
 
 | 18 | 
 #pragma GCC system_header | 
 
 
 
 
 
 | 19 | 
 #endif | 
 
 
 
 
 
 | 20 | 
  | 
 
 
 
 
 
 | 21 | 
 #ifdef __cplusplus | 
 
 
 
 
 
 | 22 | 
 extern "C" { | 
 
 
 
 
 
 | 23 | 
 #endif | 
 
 
 
 
 
 | 24 | 
  | 
 
 
 
 
 
 | 25 | 
 /*--- Active Directory Reference - Active Directory Enumerations */ | 
 
 
 
 
 
 | 26 | 
 #if (_WIN32_WINNT >= 0x0501) | 
 
 
 
 
 
 | 27 | 
 typedef enum _DS_MANGLE_FOR { | 
 
 
 
 
 
 | 28 | 
         DS_MANGLE_UNKNOWN = 0, | 
 
 
 
 
 
 | 29 | 
         DS_MANGLE_OBJECT_RDN_FOR_DELETION = 1, | 
 
 
 
 
 
 | 30 | 
         DS_MANGLE_OBJECT_RDN_FOR_NAME_CONFLICT = 2 | 
 
 
 
 
 
 | 31 | 
 } DS_MANGLE_FOR; | 
 
 
 
 
 
 | 32 | 
 #endif /* (_WIN32_WINNT >= 0x0501) */ | 
 
 
 
 
 
 | 33 | 
 #if (_WIN32_WINNT >= 0x0500) | 
 
 
 
 
 
 | 34 | 
 typedef enum { | 
 
 
 
 
 
 | 35 | 
         DS_NAME_NO_ERROR = 0, | 
 
 
 
 
 
 | 36 | 
         DS_NAME_ERROR_RESOLVING = 1, | 
 
 
 
 
 
 | 37 | 
         DS_NAME_ERROR_NOT_FOUND = 2, | 
 
 
 
 
 
 | 38 | 
         DS_NAME_ERROR_NOT_UNIQUE = 3, | 
 
 
 
 
 
 | 39 | 
         DS_NAME_ERROR_NO_MAPPING = 4, | 
 
 
 
 
 
 | 40 | 
         DS_NAME_ERROR_DOMAIN_ONLY = 5, | 
 
 
 
 
 
 | 41 | 
         DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 6, | 
 
 
 
 
 
 | 42 | 
         DS_NAME_ERROR_TRUST_REFERRAL = 7 | 
 
 
 
 
 
 | 43 | 
 } DS_NAME_ERROR; | 
 
 
 
 
 
 | 44 | 
 typedef enum { | 
 
 
 
 
 
 | 45 | 
         DS_NAME_NO_FLAGS = 0x0, | 
 
 
 
 
 
 | 46 | 
         DS_NAME_FLAG_SYNTACTICAL_ONLY = 0x1, | 
 
 
 
 
 
 | 47 | 
         DS_NAME_FLAG_EVAL_AT_DC = 0x2, | 
 
 
 
 
 
 | 48 | 
         DS_NAME_FLAG_GCVERIFY = 0x4, | 
 
 
 
 
 
 | 49 | 
         DS_NAME_FLAG_TRUST_REFERRAL = 0x8 | 
 
 
 
 
 
 | 50 | 
 } DS_NAME_FLAGS; | 
 
 
 
 
 
 | 51 | 
 typedef enum { | 
 
 
 
 
 
 | 52 | 
         DS_UNKNOWN_NAME = 0, | 
 
 
 
 
 
 | 53 | 
         DS_FQDN_1779_NAME = 1, | 
 
 
 
 
 
 | 54 | 
         DS_NT4_ACCOUNT_NAME = 2, | 
 
 
 
 
 
 | 55 | 
         DS_DISPLAY_NAME = 3, | 
 
 
 
 
 
 | 56 | 
         DS_UNIQUE_ID_NAME = 6, | 
 
 
 
 
 
 | 57 | 
         DS_CANONICAL_NAME = 7, | 
 
 
 
 
 
 | 58 | 
         DS_USER_PRINCIPAL_NAME = 8, | 
 
 
 
 
 
 | 59 | 
         DS_CANONICAL_NAME_EX = 9, | 
 
 
 
 
 
 | 60 | 
         DS_SERVICE_PRINCIPAL_NAME = 10, | 
 
 
 
 
 
 | 61 | 
         DS_SID_OR_SID_HISTORY_NAME = 11, | 
 
 
 
 
 
 | 62 | 
         DS_DNS_DOMAIN_NAME = 12 | 
 
 
 
 
 
 | 63 | 
 } DS_NAME_FORMAT; | 
 
 
 
 
 
 | 64 | 
 typedef enum _DS_REPL_INFO_TYPE { | 
 
 
 
 
 
 | 65 | 
         DS_REPL_INFO_NEIGHBORS = 0, | 
 
 
 
 
 
 | 66 | 
         DS_REPL_INFO_CURSORS_FOR_NC = 1, | 
 
 
 
 
 
 | 67 | 
         DS_REPL_INFO_METADATA_FOR_OBJ = 2, | 
 
 
 
 
 
 | 68 | 
         DS_REPL_INFO_KCC_DSA_CONNECT_FAILURES = 3, | 
 
 
 
 
 
 | 69 | 
         DS_REPL_INFO_KCC_DSA_LINK_FAILURES = 4, | 
 
 
 
 
 
 | 70 | 
         DS_REPL_INFO_PENDING_OPS = 5, | 
 
 
 
 
 
 | 71 | 
         DS_REPL_INFO_METADATA_FOR_ATTR_VALUE = 6, | 
 
 
 
 
 
 | 72 | 
         DS_REPL_INFO_CURSORS_2_FOR_NC = 7, | 
 
 
 
 
 
 | 73 | 
         DS_REPL_INFO_CURSORS_3_FOR_NC = 8, | 
 
 
 
 
 
 | 74 | 
         DS_REPL_INFO_METADATA_2_FOR_OBJ = 9, | 
 
 
 
 
 
 | 75 | 
         DS_REPL_INFO_METADATA_2_FOR_ATTR_VALUE = 10 | 
 
 
 
 
 
 | 76 | 
 } DS_REPL_INFO_TYPE; | 
 
 
 
 
 
 | 77 | 
 typedef enum { | 
 
 
 
 
 
 | 78 | 
         DS_REPL_OP_TYPE_SYNC = 0, | 
 
 
 
 
 
 | 79 | 
         DS_REPL_OP_TYPE_ADD, | 
 
 
 
 
 
 | 80 | 
         DS_REPL_OP_TYPE_DELETE, | 
 
 
 
 
 
 | 81 | 
         DS_REPL_OP_TYPE_MODIFY, | 
 
 
 
 
 
 | 82 | 
         DS_REPL_OP_TYPE_UPDATE_REFS | 
 
 
 
 
 
 | 83 | 
 } DS_REPL_OP_TYPE; | 
 
 
 
 
 
 | 84 | 
 typedef enum { | 
 
 
 
 
 
 | 85 | 
         DS_REPSYNCALL_WIN32_ERROR_CONTACTING_SERVER = 0, | 
 
 
 
 
 
 | 86 | 
         DS_REPSYNCALL_WIN32_ERROR_REPLICATING = 1, | 
 
 
 
 
 
 | 87 | 
         DS_REPSYNCALL_SERVER_UNREACHABLE = 2 | 
 
 
 
 
 
 | 88 | 
 } DS_REPSYNCALL_ERROR; | 
 
 
 
 
 
 | 89 | 
 typedef enum { | 
 
 
 
 
 
 | 90 | 
         DS_REPSYNCALL_EVENT_ERROR = 0, | 
 
 
 
 
 
 | 91 | 
         DS_REPSYNCALL_EVENT_SYNC_STARTED = 1, | 
 
 
 
 
 
 | 92 | 
         DS_REPSYNCALL_EVENT_SYNC_COMPLETED = 2, | 
 
 
 
 
 
 | 93 | 
         DS_REPSYNCALL_EVENT_FINISHED = 3 | 
 
 
 
 
 
 | 94 | 
 } DS_REPSYNCALL_EVENT; | 
 
 
 
 
 
 | 95 | 
 typedef enum { | 
 
 
 
 
 
 | 96 | 
         DS_SPN_DNS_HOST = 0, | 
 
 
 
 
 
 | 97 | 
         DS_SPN_DN_HOST = 1, | 
 
 
 
 
 
 | 98 | 
         DS_SPN_NB_HOST = 2, | 
 
 
 
 
 
 | 99 | 
         DS_SPN_DOMAIN = 3, | 
 
 
 
 
 
 | 100 | 
         DS_SPN_NB_DOMAIN = 4, | 
 
 
 
 
 
 | 101 | 
         DS_SPN_SERVICE = 5 | 
 
 
 
 
 
 | 102 | 
 } DS_SPN_NAME_TYPE; | 
 
 
 
 
 
 | 103 | 
 typedef enum { | 
 
 
 
 
 
 | 104 | 
         DS_SPN_ADD_SPN_OP = 0, | 
 
 
 
 
 
 | 105 | 
         DS_SPN_REPLACE_SPN_OP = 1, | 
 
 
 
 
 
 | 106 | 
         DS_SPN_DELETE_SPN_OP = 2 | 
 
 
 
 
 
 | 107 | 
 } DS_SPN_WRITE_OP; | 
 
 
 
 
 
 | 108 | 
  | 
 
 
 
 
 
 | 109 | 
  | 
 
 
 
 
 
 | 110 | 
 #endif /* (_WIN32_WINNT >= 0x0500) */ | 
 
 
 
 
 
 | 111 | 
  | 
 
 
 
 
 
 | 112 | 
 #ifdef __cplusplus | 
 
 
 
 
 
 | 113 | 
 } | 
 
 
 
 
 
 | 114 | 
 #endif | 
 
 
 
 
 
 | 115 | 
 #endif |