Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

254 lines
13 KiB

//mkdso.h
//
// Exit status codes. Exit codes start with 100 to keep them
// distinct from the MKDSXE_ error codes in mkdsx.h
//
#define MKDSOE_SUCCESS 100 // "Success."
#define MKDSOE_BAD_ARG 101 // "Invalid Arguments."
#define MKDSOE_CANT_BIND 102 // "Could not bind to the DC."
#define MKDSOE_NO_NTFRS_SETTINGS 103 // "Could not find 'NTFRS Settings' object. Check the /settingsdn parameter."
#define MKDSOE_SET_OBJ_CRE_FAILED 104 // "Error creating replica set."
#define MKDSOE_SET_OBJ_UPDATE_FAILED 105 // "Error updating replica set."
#define MKDSOE_SET_NOT_FOUND_UPDATE 106 // "Error updating replica set; set not found."
#define MKDSOE_SET_DUPS_FOUND_UPDATE 107 // "Error updating replica set; duplicate sets found."
#define MKDSOE_SET_DUPS_FOUND_DELETE 108 // "Error deleting replica set; duplicate sets found."
#define MKDSOE_SET_DELETE_FAILED 109 // "Error deleting replica set."
#define MKDSOE_SET_NOT_FOUND_DELETE 110 // "Error deleting replica set; set not found."
#define MKDSOE_MULTIPLE_SETS_DELETED 111 // "Deleting multiple sets."
#define MKDSOE_SET_DUMP_FAILED 112 // "Error dumping replica set."
#define MKDSOE_SET_NOT_FOUND_DUMP 113 // "Error dumping replica set; set not found."
#define MKDSOE_MULTIPLE_SETS_DUMPED 114 // "Dumping duplicate sets."
#define MKDSOE_MEMBER_OBJ_CRE_FAILED 115 // "Error creating replica member."
#define MKDSOE_MEMBER_OBJ_UPDATE_FAILED 116 // "Error updating replica member."
#define MKDSOE_MEMBER_NOT_FOUND_UPDATE 117 // "Error updating replica member; member not found."
#define MKDSOE_MEMBER_DUPS_FOUND_UPDATE 118 // "Error updating replica member; duplicate members found."
#define MKDSOE_MEMBER_DUPS_FOUND_DELETE 119 // "Error deleting member; duplicate subscribers found."
#define MKDSOE_MEMBER_DELETE_FAILED 120 // "Error deleting replica member."
#define MKDSOE_MEMBER_NOT_FOUND_DELETE 121 // "Error deleting replica member; member not found."
#define MKDSOE_MULTIPLE_MEMBERS_DELETED 122 // "Deleting multiple members."
#define MKDSOE_MEMBER_DUMP_FAILED 123 // "Error dumping replica member."
#define MKDSOE_MEMBER_NOT_FOUND_DUMP 124 // "Error dumping replica member; member not found."
#define MKDSOE_MULTIPLE_MEMBERS_DUMPED 125 // "Dumping duplicate members."
#define MKDSOE_SUBSCRIBER_OBJ_CRE_FAILED 126 // "Error creating subscriber."
#define MKDSOE_SUBSCRIBER_OBJ_UPDATE_FAILED 127 // "Error updating subscriber."
#define MKDSOE_SUBSCRIBER_NOT_FOUND_UPDATE 128 // "Error updating subscriber; subscriber not found."
#define MKDSOE_SUBSCRIBER_DUPS_FOUND_UPDATE 129 // "Error updating subscriber; duplicate subscribers found."
#define MKDSOE_SUBSCRIBER_DELETE_FAILED 130 // "Error deleting subscriber."
#define MKDSOE_SUBSCRIBER_NOT_FOUND_DELETE 131 // "Error deleting subscriber; subscriber not found."
#define MKDSOE_MULTIPLE_SUBSCRIBERS_DELETE 132 // "Deleting multiple subscribers."
#define MKDSOE_SUBSCRIBER_DUPS_FOUND_DELETE 133 // "Error deleting subscriber; duplicate subscribers found."
#define MKDSOE_SUBSCRIBER_DUMP_FAILED 134 // "Error dumping subscriber."
#define MKDSOE_SUBSCRIBER_NOT_FOUND_DUMP 135 // "Error dumping subscriber; subscriber not found."
#define MKDSOE_MULTIPLE_SUBSCRIBERS_DUMPED 136 // "Dumping duplicate subscribers."
#define MKDSOE_RSTYPE_MAX 4
#define MKDSOE_SUBSCRIPTION L"NTFRS Subscriptions"
#define FRST_SIZE_OF_SCHEDULE_GRID 168 // 168 bytes for the schedule (7days*24hours).
#define FRST_SIZE_OF_SCHEDULE 188 // 20 bytes for the SCHEDULE and SCHEDULE_HEADER structure and
#define WIN_SUCCESS(_Status) (_Status == ERROR_SUCCESS)
#define FREE(_x_) { if (_x_) free(_x_); _x_ = NULL; }
//
// Is a handle valid?
// Some functions set the handle to NULL and some to
// INVALID_HANDLE_VALUE (-1). This define handles both
// cases.
//
#define HANDLE_IS_VALID(_Handle) ((_Handle) && ((_Handle) != INVALID_HANDLE_VALUE))
//
// Only close valid handles and then set the handle invalid.
// FRS_CLOSE(handle);
//
#define FRS_CLOSE(_Handle) \
if (HANDLE_IS_VALID(_Handle)) { \
CloseHandle(_Handle); \
(_Handle) = INVALID_HANDLE_VALUE; \
}
VOID
PrintSchedule(
PSCHEDULE Schedule
);
#define FRS_LDAP_SEARCH_PAGESIZE 1000
typedef struct _FRS_LDAP_SEARCH_CONTEXT {
BOOL bOpen;
ULONG EntriesInPage;
ULONG CurrentEntry;
ULONG TotalEntries;
LDAPMessage * LdapMsg;
LDAPMessage * CurrentLdapMsg;
PWCHAR Filter;
PWCHAR BaseDn;
DWORD Scope;
DWORD PageSize;
PWCHAR * Attrs;
} FRS_LDAP_SEARCH_CONTEXT, *PFRS_LDAP_SEARCH_CONTEXT;
//Macros for prints.
#define DPRINT0(str) (bVerboseMode) ? printf(str):printf("")
#define DPRINT1(str,p1) (bVerboseMode) ? printf(str,p1):printf("")
#define DPRINT2(str,p1,p2) (bVerboseMode) ? printf(str,p1,p2):printf("")
#define DPRINT3(str,p1,p2,p3) (bVerboseMode) ? printf(str,p1,p2,p3):printf("")
#define DPRINT4(str,p1,p2,p3,p4) (bVerboseMode) ? printf(str,p1,p2,p3,p4):printf("")
#define NDPRINT0(str) (!bVerboseMode) ? printf(str):printf("")
#define NDPRINT1(str,p1) (!bVerboseMode) ? printf(str,p1):printf("")
#define NDPRINT2(str,p1,p2) (!bVerboseMode) ? printf(str,p1,p2):printf("")
//
// Some useful DS object classes and object attributes
//
#define SCHEMA_NAMING_CONTEXT L"CN=Schema"
#define CONFIG_NAMING_CONTEXT L"CN=Configuration"
#define DOMAIN_NAMING_CONTEXT L"DC="
#define ATTR_ATTRIBUTE_ID L"attributeID"
#define ATTR_AUTH_LEVEL L"frsPartnerAuthLevel"
#define ATTR_CLASS L"objectClass"
#define ATTR_CLASS_SCHEMA L"classSchema"
#define ATTR_CN L"cn"
#define ATTR_COMPUTER L"computer"
#define ATTR_COMPUTER_REF L"frsComputerReference"
#define ATTR_COMPUTER_REF_BL L"frsComputerReferenceBL"
#define ATTR_CONTAINER L"container"
#define ATTR_CONTROL_CREATION L"frsControlDataCreation"
#define ATTR_CXTION L"nTDSConnection"
#define ATTR_DEFAULT_NAMING_CONTEXT L"defaultNamingContext"
#define ATTR_DESCRIPTION L"description"
#define ATTR_DIRECTORY_FILTER L"frsDirectoryFilter"
#define ATTR_DN L"distinguishedName"
#define ATTR_DNS L"machineDNSName"
#define ATTR_DNS_HOST_NAME L"dNSHostName"
#define ATTR_DS_POLL L"frsDSPoll"
#define ATTR_ENABLED_CXTION L"enabledConnection"
#define ATTR_EXTENSIONS L"frsExtensions"
#define ATTR_FALSE L"FALSE"
#define ATTR_FAULT_CONDITION L"frsFaultCondition"
#define ATTR_FILE_FILTER L"frsFileFilter"
#define ATTR_FLAGS L"frsFlags"
#define ATTR_FROM_SERVER L"fromServer"
#define ATTR_GOVERNS_ID L"governsID"
#define ATTR_INBOUND_BACKLOG L"frsControlInboundBacklog"
#define ATTR_LDAP_DISPLAY L"lDAPDisplayName"
#define ATTR_LEVEL_LIMIT L"frsLevelLimit"
#define ATTR_MEMBER L"nTFRSMember"
#define ATTR_MEMBER_REF L"frsMemberReference"
#define ATTR_MEMBER_REF_BL L"frsMemberReferenceBL"
#define ATTR_NAMING_CONTEXTS L"namingContexts"
#define ATTR_NEW_SET_GUID L"frsReplicaSetGUID"
#define ATTR_NEW_VERSION_GUID L"frsVersionGuid"
#define ATTR_NTDS_SITE_SETTINGS L"nTDSSiteSettings"
#define ATTR_NTFRS_SETTINGS L"nTFRSSettings"
#define ATTR_NTFRS_SITE_SETTINGS L"nTFRSSiteSettings"
#define ATTR_OBJECT_GUID L"objectGUID"
#define ATTR_OLD_SET_GUID L"replicaSetGUID"
#define ATTR_OLD_VERSION_GUID L"replicaVersionGuid"
#define ATTR_OPTIONS L"options"
#define ATTR_OPTIONS_0 L"0"
#define ATTR_OUTBOUND_BACKLOG L"frsControlOutboundBacklog"
#define ATTR_PRIMARY_MEMBER L"frsPrimaryMember"
#define ATTR_REPLICA_ROOT L"frsRootPath"
#define ATTR_REPLICA_SET L"nTFRSReplicaSet"
#define ATTR_REPLICA_STAGE L"frsStagingPath"
#define ATTR_ROOT L""
#define ATTR_SAM L"sAMAccountName"
#define ATTR_SCHEDULE L"schedule"
#define ATTR_SERVER L"server"
#define ATTR_SERVER_REF L"serverReference"
#define ATTR_SERVER_REF_BL L"serverReferenceBL"
#define ATTR_SERVICE_COMMAND L"frsServiceCommand"
#define ATTR_SERVICE_COMMAND_STATUS L"frsServiceCommandStatus"
#define ATTR_SET_TYPE L"frsReplicaSetType"
#define ATTR_SUBSCRIBER L"nTFRSSubscriber"
#define ATTR_SUBSCRIPTIONS L"nTFRSSubscriptions"
#define ATTR_SUPERIORS L"possSuperiors"
#define ATTR_SYSTEM_FLAGS L"systemFlags"
#define ATTR_SYSTEM_MAY_CONTAIN L"systemMayContain"
#define ATTR_SYSTEM_MUST_CONTAIN L"systemMustContain"
#define ATTR_SYSTEM_POSS_SUPERIORS L"systemPossSuperiors"
#define ATTR_TRUE L"TRUE"
#define ATTR_UPDATE_TIMEOUT L"frsUpdateTimeout"
#define ATTR_USER L"user"
#define ATTR_VERSION L"frsVersion"
#define ATTR_WORKING_PATH L"frsWorkingPath"
#define CN_NTDS_SITE_SETTINGS L"NTDS Site Settings"
#define CN_SERVERS L"Servers"
#define CN_TEST_SETTINGS L"NTFRS Test Settings"
#define CN_SUBSCRIPTIONS L"NTFRS Subscriptions"
#define CN_SITES L"Sites"
#define CN_SERVICES L"Services"
#define CN_SYSTEM L"System"
#define CN_SYSVOLS L"Microsoft System Volumes"
#define CN_NTDS_SETTINGS L"NTDS Settings"
#define CN_NTFRS_SETTINGS L"File Replication Service"
#define CN_DOMAIN_SYSVOL L"Domain System Volume (SYSVOL share)"
#define CLASS_ANY L"(objectClass=*)"
#define CLASS_SUBSCRIPTIONS L"(objectClass=nTFRSSubscriptions)"
#define CLASS_COMPUTER L"(objectClass=computer)"
#define CLASS_SUBSCRIBER L"(objectClass=nTFRSSubscriber)"
#define CLASS_NTFRS_SETTINGS L"(objectClass=nTFRSSettings)"
#define CLASS_NTDS_SETTINGS L"(objectClass=nTDSSettings)"
#define CLASS_CXTION L"(objectClass=nTDSConnection)"
#define CLASS_NTFRS_REPLICA_SET L"(objectClass=nTFRSReplicaSet)"
#define CLASS_SCHEMA L"(objectClass=classSchema)"
#define CLASS_SERVER L"(objectClass=server)"
#define CLASS_MEMBER L"(objectClass=nTFRSMember)"
#define CLASS_NTDS_DSA L"(objectClass=nTDSDSA)"
#define CLASS_SITE_SETTINGS L"(|(objectClass=nTDSSiteSettings)"\
L"(objectClass=nTFRSSiteSettings))"
#define CLASS_TOPOLOGY L"(|(objectClass=nTDSSettings)" \
L"(objectClass=nTFRSSettings)" \
L"(objectClass=nTFRSReplicaSet)" \
L"(objectClass=nTDSConnection))"
#define CLASS_DELETABLE L"(|(objectClass=nTFRSSiteSettings)" \
L"(objectClass=nTFRSSettings)" \
L"(objectClass=nTFRSReplicaSet)" \
L"(objectClass=nTDSConnection))"
#define MK_ATTRS_1(_attr_, _a1) \
_attr_[0] = _a1; _attr_[1] = NULL;
#define MK_ATTRS_2(_attr_, _a1, _a2) \
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = NULL;
#define MK_ATTRS_3(_attr_, _a1, _a2, _a3) \
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = NULL;
#define MK_ATTRS_4(_attr_, _a1, _a2, _a3, _a4) \
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
_attr_[4] = NULL;
#define MK_ATTRS_5(_attr_, _a1, _a2, _a3, _a4, _a5) \
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
_attr_[4] = _a5; _attr_[5] = NULL;
#define MK_ATTRS_6(_attr_, _a1, _a2, _a3, _a4, _a5, _a6) \
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
_attr_[4] = _a5; _attr_[5] = _a6; _attr_[6] = NULL;
#define MK_ATTRS_7(_attr_, _a1, _a2, _a3, _a4, _a5, _a6, _a7) \
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
_attr_[4] = _a5; _attr_[5] = _a6; _attr_[6] = _a7; _attr_[7] = NULL;
#define MK_ATTRS_8(_attr_, _a1, _a2, _a3, _a4, _a5, _a6, _a7, _a8) \
_attr_[0] = _a1; _attr_[1] = _a2; _attr_[2] = _a3; _attr_[3] = _a4; \
_attr_[4] = _a5; _attr_[5] = _a6; _attr_[6] = _a7; _attr_[7] = _a8; \
_attr_[8] = NULL;