Changeset 740 for vendor/current/librpc/idl/drsuapi.idl
- Timestamp:
- Nov 14, 2012, 12:59:34 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/librpc/idl/drsuapi.idl
r414 r740 1 1 #include "idl_types.h" 2 2 3 import "security.idl", "misc.idl", " samr.idl";3 import "security.idl", "misc.idl", "lsa.idl", "samr.idl"; 4 4 5 5 [ … … 16 16 typedef bitmap samr_GroupAttrs samr_GroupAttrs; 17 17 18 /* see MS-DRSR section 5.39 */ 19 typedef [public,bitmap32bit] bitmap { 20 DRSUAPI_DRS_ASYNC_OP = 0x00000001, 21 DRSUAPI_DRS_GETCHG_CHECK = 0x00000002, 22 DRSUAPI_DRS_UPDATE_NOTIFICATION = 0x00000002, 23 DRSUAPI_DRS_ADD_REF = 0x00000004, 24 DRSUAPI_DRS_SYNC_ALL = 0x00000008, 25 DRSUAPI_DRS_DEL_REF = 0x00000008, 26 DRSUAPI_DRS_WRIT_REP = 0x00000010, 27 DRSUAPI_DRS_INIT_SYNC = 0x00000020, 28 DRSUAPI_DRS_PER_SYNC = 0x00000040, 29 DRSUAPI_DRS_MAIL_REP = 0x00000080, 30 DRSUAPI_DRS_ASYNC_REP = 0x00000100, 31 DRSUAPI_DRS_IGNORE_ERROR = 0x00000100, 32 DRSUAPI_DRS_TWOWAY_SYNC = 0x00000200, 33 DRSUAPI_DRS_CRITICAL_ONLY = 0x00000400, 34 DRSUAPI_DRS_GET_ANC = 0x00000800, 35 DRSUAPI_DRS_GET_NC_SIZE = 0x00001000, 36 DRSUAPI_DRS_LOCAL_ONLY = 0x00001000, 37 DRSUAPI_DRS_NONGC_RO_REP = 0x00002000, 38 DRSUAPI_DRS_SYNC_BYNAME = 0x00004000, 39 DRSUAPI_DRS_REF_OK = 0x00004000, 40 DRSUAPI_DRS_FULL_SYNC_NOW = 0x00008000, 41 DRSUAPI_DRS_NO_SOURCE = 0x00008000, 42 DRSUAPI_DRS_FULL_SYNC_IN_PROGRESS = 0x00010000, 43 DRSUAPI_DRS_FULL_SYNC_PACKET = 0x00020000, 44 DRSUAPI_DRS_SYNC_REQUEUE = 0x00040000, 45 DRSUAPI_DRS_SYNC_URGENT = 0x00080000, 46 DRSUAPI_DRS_REF_GCSPN = 0x00100000, 47 DRSUAPI_DRS_NO_DISCARD = 0x00100000, 48 DRSUAPI_DRS_NEVER_SYNCED = 0x00200000, 49 DRSUAPI_DRS_SPECIAL_SECRET_PROCESSING = 0x00400000, 50 DRSUAPI_DRS_INIT_SYNC_NOW = 0x00800000, 51 DRSUAPI_DRS_PREEMPTED = 0x01000000, 52 DRSUAPI_DRS_SYNC_FORCED = 0x02000000, 53 DRSUAPI_DRS_DISABLE_AUTO_SYNC = 0x04000000, 54 DRSUAPI_DRS_DISABLE_PERIODIC_SYNC = 0x08000000, 55 DRSUAPI_DRS_USE_COMPRESSION = 0x10000000, 56 DRSUAPI_DRS_NEVER_NOTIFY = 0x20000000, 57 DRSUAPI_DRS_SYNC_PAS = 0x40000000, 58 DRSUAPI_DRS_GET_ALL_GROUP_MEMBERSHIP = 0x80000000 59 } drsuapi_DrsOptions; 60 18 61 /*****************/ 19 62 /* Function 0x00 */ … … 26 69 DRSUAPI_SUPPORTED_EXTENSION_DCINFO_V1 = 0x00000020, 27 70 DRSUAPI_SUPPORTED_EXTENSION_RESTORE_USN_OPTIMIZATION = 0x00000040, 28 DRSUAPI_SUPPORTED_EXTENSION_ 00000080= 0x00000080,71 DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY = 0x00000080, 29 72 DRSUAPI_SUPPORTED_EXTENSION_KCC_EXECUTE = 0x00000100, 30 73 DRSUAPI_SUPPORTED_EXTENSION_ADDENTRY_V2 = 0x00000200, … … 39 82 DRSUAPI_SUPPORTED_EXTENSION_ADD_SID_HISTORY = 0x00040000, 40 83 DRSUAPI_SUPPORTED_EXTENSION_POST_BETA3 = 0x00080000, 41 DRSUAPI_SUPPORTED_EXTENSION_ 00100000= 0x00100000,84 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V5 = 0x00100000, 42 85 DRSUAPI_SUPPORTED_EXTENSION_GET_MEMBERSHIPS2 = 0x00200000, 43 86 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V6 = 0x00400000, … … 54 97 DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT = 0x08000000, 55 98 DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS = 0x10000000, 56 DRSUAPI_SUPPORTED_EXTENSION_ 20000000= 0x20000000,57 DRSUAPI_SUPPORTED_EXTENSION_ 40000000= 0x40000000,58 DRSUAPI_SUPPORTED_EXTENSION_ 80000000= 0x8000000099 DRSUAPI_SUPPORTED_EXTENSION_GETCHGREQ_V10 = 0x20000000, 100 DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART2 = 0x40000000, 101 DRSUAPI_SUPPORTED_EXTENSION_RESERVED_PART3 = 0x80000000 59 102 } drsuapi_SupportedExtensions; 60 103 61 104 typedef [bitmap32bit] bitmap { 62 105 DRSUAPI_SUPPORTED_EXTENSION_ADAM = 0x00000001, 63 DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 = 0x00000002 106 DRSUAPI_SUPPORTED_EXTENSION_LH_BETA2 = 0x00000002, 107 DRSUAPI_SUPPORTED_EXTENSION_RECYCLE_BIN = 0x00000004 64 108 } drsuapi_SupportedExtensionsExt; 65 109 … … 143 187 /* Function 0x02 */ 144 188 typedef [public,gensize] struct { 145 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr-> iconv_convenience, ndr->flags)-4)] uint32 __ndr_size;189 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; 146 190 [value(ndr_size_dom_sid28(&sid, ndr->flags))] uint32 __ndr_size_sid; 147 191 GUID guid; … … 151 195 } drsuapi_DsReplicaObjectIdentifier; 152 196 153 typedef [public] bitmap { 154 DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION = 0x00000001, 155 DRSUAPI_DS_REPLICA_SYNC_WRITEABLE = 0x00000002, 156 DRSUAPI_DS_REPLICA_SYNC_PERIODIC = 0x00000004, 157 DRSUAPI_DS_REPLICA_SYNC_INTERSITE_MESSAGING = 0x00000008, 158 DRSUAPI_DS_REPLICA_SYNC_ALL_SOURCES = 0x00000010, 159 DRSUAPI_DS_REPLICA_SYNC_FULL = 0x00000020, 160 DRSUAPI_DS_REPLICA_SYNC_URGENT = 0x00000040, 161 DRSUAPI_DS_REPLICA_SYNC_NO_DISCARD = 0x00000080, 162 DRSUAPI_DS_REPLICA_SYNC_FORCE = 0x00000100, 163 DRSUAPI_DS_REPLICA_SYNC_ADD_REFERENCE = 0x00000200, 164 DRSUAPI_DS_REPLICA_SYNC_NEVER_COMPLETED = 0x00000400, 165 DRSUAPI_DS_REPLICA_SYNC_TWO_WAY = 0x00000800, 166 DRSUAPI_DS_REPLICA_SYNC_NEVER_NOTIFY = 0x00001000, 167 DRSUAPI_DS_REPLICA_SYNC_INITIAL = 0x00002000, 168 DRSUAPI_DS_REPLICA_SYNC_USE_COMPRESSION = 0x00004000, 169 DRSUAPI_DS_REPLICA_SYNC_ABANDONED = 0x00008000, 170 DRSUAPI_DS_REPLICA_SYNC_INITIAL_IN_PROGRESS = 0x00010000, 171 DRSUAPI_DS_REPLICA_SYNC_PARTIAL_ATTRIBUTE_SET = 0x00020000, 172 DRSUAPI_DS_REPLICA_SYNC_REQUEUE = 0x00040000, 173 DRSUAPI_DS_REPLICA_SYNC_NOTIFICATION = 0x00080000, 174 DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_REPLICA = 0x00100000, 175 DRSUAPI_DS_REPLICA_SYNC_CRITICAL = 0x00200000, 176 DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS = 0x00400000, 177 DRSUAPI_DS_REPLICA_SYNC_PREEMPTED = 0x00800000 178 } drsuapi_DsReplicaSyncOptions; 179 180 typedef struct { 181 drsuapi_DsReplicaObjectIdentifier *naming_context; 197 typedef struct { 198 [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; 182 199 GUID source_dsa_guid; 183 astring * other_info; /* I assume this is related to the repsFromTo1OtherInfo dns_name*/184 drsuapi_D sReplicaSyncOptions options;200 astring *source_dsa_dns; /* Source DSA dns_name in <guid>._msdcs.<domain_dns> form */ 201 drsuapi_DrsOptions options; 185 202 } drsuapi_DsReplicaSyncRequest1; 186 203 187 typedef [switch_type( int32)] union {204 typedef [switch_type(uint32)] union { 188 205 [case(1)] drsuapi_DsReplicaSyncRequest1 req1; 189 206 } drsuapi_DsReplicaSyncRequest; … … 191 208 WERROR drsuapi_DsReplicaSync( 192 209 [in] policy_handle *bind_handle, 193 [in] int32 level,194 [in,switch_is(level)] drsuapi_DsReplicaSyncRequest req210 [in] uint32 level, 211 [in,switch_is(level)] drsuapi_DsReplicaSyncRequest *req 195 212 ); 196 213 … … 215 232 [size_is(count)] drsuapi_DsReplicaCursor cursors[]; 216 233 } drsuapi_DsReplicaCursorCtrEx; 217 218 typedef [public] bitmap {219 /* the _WRITEABLE flag indicates a replication with all attributes220 *221 * --metze222 */223 DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE = 0x00000010,224 DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP = 0x00000020,225 DRSUAPI_DS_REPLICA_NEIGHBOUR_DO_SCHEDULED_SYNCS = 0x00000040,226 DRSUAPI_DS_REPLICA_NEIGHBOUR_USE_ASYNC_INTERSIDE_TRANSPORT = 0x00000080,227 DRSUAPI_DS_REPLICA_NEIGHBOUR_ASYNC_REP = 0x00000100,228 DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_ERROR = 0x00000100,229 DRSUAPI_DS_REPLICA_NEIGHBOUR_TWO_WAY_SYNC = 0x00000200,230 DRSUAPI_DS_REPLICA_NEIGHBOUR_CRITICAL_ONLY = 0x00000400,231 DRSUAPI_DS_REPLICA_NEIGHBOUR_RETURN_OBJECT_PARENTS = 0x00000800,/*Include updates to ancestor objects before updates to their descendants*/232 DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_IN_PROGRESS = 0x00010000,233 DRSUAPI_DS_REPLICA_NEIGHBOUR_FULL_SYNC_PACKET = 0x00020000,234 DRSUAPI_DS_REPLICA_NEIGHBOUR_NEVER_SYNCED = 0x00200000,235 DRSUAPI_DS_REPLICA_NEIGHBOUR_SPECIAL_SECRET_PROCESSING = 0x00800000,236 DRSUAPI_DS_REPLICA_NEIGHBOUR_PREEMPTED = 0x01000000,237 DRSUAPI_DS_REPLICA_NEIGHBOUR_IGNORE_CHANGE_NOTIFICATIONS = 0x04000000,238 DRSUAPI_DS_REPLICA_NEIGHBOUR_DISABLE_SCHEDULED_SYNC = 0x08000000,239 /*240 * the following NOTE applies to DsGetNCChangesRequest5:241 * - the data is only compressed when 10 or more objects are replicated242 * - but there could also be a size limit of 35 KBytes or something like that243 * - the reply is DsGetNCChangesCtr2244 * - maybe the same applies to DsGetNCChangesRequest8...245 *246 * --metze247 */248 DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES = 0x10000000,249 DRSUAPI_DS_REPLICA_NEIGHBOUR_NO_CHANGE_NOTIFICATIONS = 0x20000000,250 DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET = 0x40000000251 } drsuapi_DsReplicaNeighbourFlags;252 234 253 235 typedef [flag(NDR_PAHEX),v1_enum] enum { … … 288 270 drsuapi_DsReplicaHighWaterMark highwatermark; 289 271 drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; 290 drsuapi_D sReplicaNeighbourFlags replica_flags;272 drsuapi_DrsOptions replica_flags; 291 273 uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ 292 274 uint32 max_ndr_size; /* w2k3 seems to ignore this */ … … 379 361 * 2.5.5.17 => dom_sid 380 362 */ 381 typedef [nop ush,nopull] struct {382 [range(0,10000) ,value(ndr_size_drsuapi_DsReplicaOID_oid(oid, 0))] uint32 __ndr_size;383 [size_is( __ndr_size),charset(DOS)] uint8 *oid; /* it's encoded with asn1_write_OID_String() */363 typedef [noprint] struct { 364 [range(0,10000)] uint32 length; 365 [size_is(length)] uint8 *binary_oid; /* partial-binary-OID encoded with asn1_write_partial_OID_String() */ 384 366 } drsuapi_DsReplicaOID; 385 367 … … 401 383 402 384 typedef [flag(NDR_PAHEX),v1_enum,public] enum { 403 DRSUAPI_ATTRIBUTE_objectClass = 0x00000000, 404 DRSUAPI_ATTRIBUTE_description = 0x0000000d, 405 DRSUAPI_ATTRIBUTE_member = 0x0000001f, 406 DRSUAPI_ATTRIBUTE_instanceType = 0x00020001, 407 DRSUAPI_ATTRIBUTE_whenCreated = 0x00020002, 408 DRSUAPI_ATTRIBUTE_possSuperiors = 0x00020008, 409 DRSUAPI_ATTRIBUTE_hasMasterNCs = 0x0002000e, 410 DRSUAPI_ATTRIBUTE_subClassOf = 0x00020015, 411 DRSUAPI_ATTRIBUTE_governsID = 0x00020016, 412 DRSUAPI_ATTRIBUTE_mustContain = 0x00020018, 413 DRSUAPI_ATTRIBUTE_mayContain = 0x00020019, 414 DRSUAPI_ATTRIBUTE_attributeID = 0x0002001e, 415 DRSUAPI_ATTRIBUTE_attributeSyntax = 0x00020020, 416 DRSUAPI_ATTRIBUTE_isSingleValued = 0x00020021, 417 DRSUAPI_ATTRIBUTE_rangeLower = 0x00020022, 418 DRSUAPI_ATTRIBUTE_rangeUpper = 0x00020023, 419 DRSUAPI_ATTRIBUTE_dMDLocation = 0x00020024, 420 DRSUAPI_ATTRIBUTE_objectVersion = 0x0002004c, 421 DRSUAPI_ATTRIBUTE_invocationId = 0x00020073, 422 DRSUAPI_ATTRIBUTE_showInAdvancedViewOnly = 0x000200a9, 423 DRSUAPI_ATTRIBUTE_adminDisplayName = 0x000200c2, 424 DRSUAPI_ATTRIBUTE_adminDescription = 0x000200e2, 425 DRSUAPI_ATTRIBUTE_oMSyntax = 0x000200e7, 426 DRSUAPI_ATTRIBUTE_ntSecurityDescriptor = 0x00020119, 427 DRSUAPI_ATTRIBUTE_searchFlags = 0x0002014e, 428 DRSUAPI_ATTRIBUTE_auxiliaryClass = 0x0002015f, 429 DRSUAPI_ATTRIBUTE_lDAPDisplayName = 0x000201cc, 430 DRSUAPI_ATTRIBUTE_name = 0x00090001, 431 DRSUAPI_ATTRIBUTE_userAccountControl = 0x00090008, 432 DRSUAPI_ATTRIBUTE_currentValue = 0x0009001b, 433 DRSUAPI_ATTRIBUTE_homeDirectory = 0x0009002c, 434 DRSUAPI_ATTRIBUTE_homeDrive = 0x0009002d, 435 DRSUAPI_ATTRIBUTE_scriptPath = 0x0009003e, 436 DRSUAPI_ATTRIBUTE_profilePath = 0x0009008b, 437 DRSUAPI_ATTRIBUTE_objectSid = 0x00090092, 438 DRSUAPI_ATTRIBUTE_schemaIDGUID = 0x00090094, 439 DRSUAPI_ATTRIBUTE_dBCSPwd = 0x00090037,/* lmPwdHash */ 440 DRSUAPI_ATTRIBUTE_logonHours = 0x00090040, 441 DRSUAPI_ATTRIBUTE_userWorkstations = 0x00090056, 442 DRSUAPI_ATTRIBUTE_unicodePwd = 0x0009005a,/* ntPwdHash */ 443 DRSUAPI_ATTRIBUTE_ntPwdHistory = 0x0009005e, 444 DRSUAPI_ATTRIBUTE_priorValue = 0x00090064, 445 DRSUAPI_ATTRIBUTE_supplementalCredentials = 0x0009007d, 446 DRSUAPI_ATTRIBUTE_trustAuthIncoming = 0x00090081, 447 DRSUAPI_ATTRIBUTE_trustAuthOutgoing = 0x00090087, 448 DRSUAPI_ATTRIBUTE_lmPwdHistory = 0x000900a0, 449 DRSUAPI_ATTRIBUTE_systemPossSuperiors = 0x000900c3, 450 DRSUAPI_ATTRIBUTE_systemMayContain = 0x000900c4, 451 DRSUAPI_ATTRIBUTE_systemMustContain = 0x000900c5, 452 DRSUAPI_ATTRIBUTE_sAMAccountName = 0x000900dd, 453 DRSUAPI_ATTRIBUTE_sAMAccountType = 0x0009012e, 454 DRSUAPI_ATTRIBUTE_fSMORoleOwner = 0x00090171, 455 DRSUAPI_ATTRIBUTE_systemFlags = 0x00090177, 456 DRSUAPI_ATTRIBUTE_serverReference = 0x00090203, 457 DRSUAPI_ATTRIBUTE_serverReferenceBL = 0x00090204, 458 DRSUAPI_ATTRIBUTE_initialAuthIncoming = 0x0009021b, 459 DRSUAPI_ATTRIBUTE_initialAuthOutgoing = 0x0009021c, 460 DRSUAPI_ATTRIBUTE_wellKnownObjects = 0x0009026a, 461 DRSUAPI_ATTRIBUTE_dNSHostName = 0x0009026b, 462 DRSUAPI_ATTRIBUTE_isMemberOfPartialAttributeSet = 0x0009027f, 463 DRSUAPI_ATTRIBUTE_userPrincipalName = 0x00090290, 464 DRSUAPI_ATTRIBUTE_groupType = 0x000902ee, 465 DRSUAPI_ATTRIBUTE_servicePrincipalName = 0x00090303, 466 DRSUAPI_ATTRIBUTE_objectCategory = 0x0009030e, 467 DRSUAPI_ATTRIBUTE_gPLink = 0x0009037b, 468 DRSUAPI_ATTRIBUTE_msDS_Behavior_Version = 0x000905b3, 469 DRSUAPI_ATTRIBUTE_msDS_KeyVersionNumber = 0x000906f6, 470 DRSUAPI_ATTRIBUTE_msDS_HasDomainNCs = 0x0009071c, 471 DRSUAPI_ATTRIBUTE_msDS_hasMasterNCs = 0x0009072c 385 DRSUAPI_ATTID_objectClass = 0x00000000, 386 DRSUAPI_ATTID_cn = 0x00000003, 387 DRSUAPI_ATTID_ou = 0x0000000b, 388 DRSUAPI_ATTID_description = 0x0000000d, 389 DRSUAPI_ATTID_member = 0x0000001f, 390 DRSUAPI_ATTID_instanceType = 0x00020001, 391 DRSUAPI_ATTID_whenCreated = 0x00020002, 392 DRSUAPI_ATTID_possSuperiors = 0x00020008, 393 DRSUAPI_ATTID_displayName = 0x0002000d, 394 DRSUAPI_ATTID_hasMasterNCs = 0x0002000e, 395 DRSUAPI_ATTID_subClassOf = 0x00020015, 396 DRSUAPI_ATTID_governsID = 0x00020016, 397 DRSUAPI_ATTID_mustContain = 0x00020018, 398 DRSUAPI_ATTID_mayContain = 0x00020019, 399 DRSUAPI_ATTID_rDNAttId = 0x0002001A, 400 DRSUAPI_ATTID_attributeID = 0x0002001e, 401 DRSUAPI_ATTID_attributeSyntax = 0x00020020, 402 DRSUAPI_ATTID_isSingleValued = 0x00020021, 403 DRSUAPI_ATTID_rangeLower = 0x00020022, 404 DRSUAPI_ATTID_rangeUpper = 0x00020023, 405 DRSUAPI_ATTID_dMDLocation = 0x00020024, 406 DRSUAPI_ATTID_isDeleted = 0x00020030, 407 DRSUAPI_ATTID_objectVersion = 0x0002004c, 408 DRSUAPI_ATTID_invocationId = 0x00020073, 409 DRSUAPI_ATTID_showInAdvancedViewOnly = 0x000200a9, 410 DRSUAPI_ATTID_adminDisplayName = 0x000200c2, 411 DRSUAPI_ATTID_adminDescription = 0x000200e2, 412 DRSUAPI_ATTID_oMSyntax = 0x000200e7, 413 DRSUAPI_ATTID_ntSecurityDescriptor = 0x00020119, 414 DRSUAPI_ATTID_searchFlags = 0x0002014e, 415 DRSUAPI_ATTID_auxiliaryClass = 0x0002015f, 416 DRSUAPI_ATTID_lDAPDisplayName = 0x000201cc, 417 DRSUAPI_ATTID_name = 0x00090001, 418 DRSUAPI_ATTID_userAccountControl = 0x00090008, 419 DRSUAPI_ATTID_badPwdCount = 0x0009000c, 420 DRSUAPI_ATTID_codePage = 0x00090010, 421 DRSUAPI_ATTID_countryCode = 0x00090019, 422 DRSUAPI_ATTID_currentValue = 0x0009001b, 423 DRSUAPI_ATTID_homeDirectory = 0x0009002c, 424 DRSUAPI_ATTID_homeDrive = 0x0009002d, 425 DRSUAPI_ATTID_lastLogoff = 0x00090033, 426 DRSUAPI_ATTID_lastLogon = 0x00090034, 427 DRSUAPI_ATTID_dBCSPwd = 0x00090037,/* lmPwdHash */ 428 DRSUAPI_ATTID_scriptPath = 0x0009003e, 429 DRSUAPI_ATTID_logonHours = 0x00090040, 430 DRSUAPI_ATTID_userWorkstations = 0x00090056, 431 DRSUAPI_ATTID_unicodePwd = 0x0009005a,/* ntPwdHash */ 432 DRSUAPI_ATTID_ntPwdHistory = 0x0009005e, 433 DRSUAPI_ATTID_pwdLastSet = 0x00090060, 434 DRSUAPI_ATTID_primaryGroupID = 0x00090062, 435 DRSUAPI_ATTID_priorValue = 0x00090064, 436 DRSUAPI_ATTID_supplementalCredentials = 0x0009007d, 437 DRSUAPI_ATTID_trustAuthIncoming = 0x00090081, 438 DRSUAPI_ATTID_trustAuthOutgoing = 0x00090087, 439 DRSUAPI_ATTID_userParameters = 0x0009008a, 440 DRSUAPI_ATTID_profilePath = 0x0009008b, 441 DRSUAPI_ATTID_objectSid = 0x00090092, 442 DRSUAPI_ATTID_schemaIDGUID = 0x00090094, 443 DRSUAPI_ATTID_comment = 0x0009009C,/* User-Comment */ 444 DRSUAPI_ATTID_accountExpires = 0x0009009f, 445 DRSUAPI_ATTID_lmPwdHistory = 0x000900a0, 446 DRSUAPI_ATTID_logonCount = 0x000900a9, 447 DRSUAPI_ATTID_systemPossSuperiors = 0x000900c3, 448 DRSUAPI_ATTID_systemMayContain = 0x000900c4, 449 DRSUAPI_ATTID_systemMustContain = 0x000900c5, 450 DRSUAPI_ATTID_systemAuxiliaryClass = 0x000900c6, 451 DRSUAPI_ATTID_sAMAccountName = 0x000900dd, 452 DRSUAPI_ATTID_sAMAccountType = 0x0009012e, 453 DRSUAPI_ATTID_options = 0x00090133, 454 DRSUAPI_ATTID_fSMORoleOwner = 0x00090171, 455 DRSUAPI_ATTID_systemFlags = 0x00090177, 456 DRSUAPI_ATTID_serverReference = 0x00090203, 457 DRSUAPI_ATTID_serverReferenceBL = 0x00090204, 458 DRSUAPI_ATTID_initialAuthIncoming = 0x0009021b, 459 DRSUAPI_ATTID_initialAuthOutgoing = 0x0009021c, 460 DRSUAPI_ATTID_wellKnownObjects = 0x0009026a, 461 DRSUAPI_ATTID_dNSHostName = 0x0009026b, 462 DRSUAPI_ATTID_isMemberOfPartialAttributeSet = 0x0009027f, 463 DRSUAPI_ATTID_userPrincipalName = 0x00090290, 464 DRSUAPI_ATTID_groupType = 0x000902ee, 465 DRSUAPI_ATTID_servicePrincipalName = 0x00090303, 466 DRSUAPI_ATTID_lastKnownParent = 0x0009030d, 467 DRSUAPI_ATTID_objectCategory = 0x0009030e, 468 DRSUAPI_ATTID_gPLink = 0x0009037b, 469 DRSUAPI_ATTID_transportAddressAttribute = 0x0009037f, 470 DRSUAPI_ATTID_msDS_Behavior_Version = 0x000905b3, 471 DRSUAPI_ATTID_msDS_KeyVersionNumber = 0x000906f6, 472 DRSUAPI_ATTID_msDS_HasDomainNCs = 0x0009071c, 473 DRSUAPI_ATTID_msDS_hasMasterNCs = 0x0009072c, 474 DRSUAPI_ATTID_isRecycled = 0x0009080a, 475 476 DRSUAPI_ATTID_INVALID = 0xFFFFFFFF 472 477 } drsuapi_DsAttributeId; 473 478 … … 485 490 drsuapi_DsReplicaHighWaterMark highwatermark; 486 491 drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; 487 drsuapi_D sReplicaNeighbourFlags replica_flags;492 drsuapi_DrsOptions replica_flags; 488 493 uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ 489 494 uint32 max_ndr_size; /* w2k3 seems to ignore this */ … … 501 506 drsuapi_DsReplicaHighWaterMark highwatermark; 502 507 drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; 503 drsuapi_D sReplicaNeighbourFlags replica_flags;508 drsuapi_DrsOptions replica_flags; 504 509 uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ 505 510 uint32 max_ndr_size; /* w2k3 seems to ignore this */ … … 512 517 } drsuapi_DsGetNCChangesRequest10; 513 518 514 typedef [switch_type( int32)] union {519 typedef [switch_type(uint32)] union { 515 520 [case(5)] drsuapi_DsGetNCChangesRequest5 req5; 516 521 [case(8)] drsuapi_DsGetNCChangesRequest8 req8; … … 545 550 /* DN String values */ 546 551 typedef [public,gensize] struct { 547 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr-> iconv_convenience, ndr->flags))] uint32 __ndr_size;552 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3(r, ndr->flags))] uint32 __ndr_size; 548 553 [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; 549 554 GUID guid; … … 554 559 555 560 typedef [public] struct { 556 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr-> iconv_convenience, ndr->flags))] uint32 __ndr_size;561 [value(ndr_size_drsuapi_DsReplicaObjectIdentifier3Binary_without_Binary(r, ndr->flags))] uint32 __ndr_size; 557 562 [value(ndr_size_dom_sid28(&sid,ndr->flags))] uint32 __ndr_size_sid; 558 563 GUID guid; … … 564 569 } drsuapi_DsReplicaObjectIdentifier3Binary; 565 570 566 typedef [public ] struct {571 typedef [public,noprint] struct { 567 572 drsuapi_DsAttributeId attid; 568 573 drsuapi_DsAttributeValueCtr value_ctr; … … 617 622 uint32 object_count; 618 623 /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ 619 [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr-> iconv_convenience,ndr->flags)+55)] uint32 __ndr_size;624 [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size; 620 625 drsuapi_DsReplicaObjectListItemEx *first_object; 621 626 boolean32 more_data; … … 651 656 uint32 object_count; 652 657 /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ 653 [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr-> iconv_convenience,ndr->flags)+55)] uint32 __ndr_size;658 [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size; 654 659 drsuapi_DsReplicaObjectListItemEx *first_object; 655 660 boolean32 more_data; … … 718 723 719 724 typedef struct { 720 [range(0,6)] int32 level;725 [range(0,6)] uint32 level; 721 726 [range(2,3)] drsuapi_DsGetNCChangesCompressionType type; 722 727 [switch_is(level | (type<<16))] drsuapi_DsGetNCChangesCompressedCtr ctr; 723 728 } drsuapi_DsGetNCChangesCtr7; 724 729 725 typedef [switch_type( int32)] union {730 typedef [switch_type(uint32)] union { 726 731 [case(1)] drsuapi_DsGetNCChangesCtr1 ctr1; 727 732 [case(2)] drsuapi_DsGetNCChangesCtr2 ctr2; … … 732 737 WERROR drsuapi_DsGetNCChanges( 733 738 [in] policy_handle *bind_handle, 734 [in] int32 level,739 [in] uint32 level, 735 740 [in,ref,switch_is(level)] drsuapi_DsGetNCChangesRequest *req, 736 [out,ref] int32 *level_out,741 [out,ref] uint32 *level_out, 737 742 [out,ref,switch_is(*level_out)] drsuapi_DsGetNCChangesCtr *ctr 738 743 ); … … 741 746 /* Function 0x04 */ 742 747 /* [MS-DRSR] 4.1.26 */ 743 typedef bitmap {744 DRSUAPI_DS_REPLICA_UPDATE_ASYNCHRONOUS_OPERATION = 0x00000001,745 DRSUAPI_DS_REPLICA_UPDATE_GETCHG_CHECK = 0x00000002,746 DRSUAPI_DS_REPLICA_UPDATE_ADD_REFERENCE = 0x00000004,747 DRSUAPI_DS_REPLICA_UPDATE_DELETE_REFERENCE = 0x00000008,748 DRSUAPI_DS_REPLICA_UPDATE_WRITEABLE = 0x00000010749 } drsuapi_DsReplicaUpdateRefsOptions;750 748 751 749 typedef struct { … … 753 751 [ref,charset(DOS),string] uint8 *dest_dsa_dns_name; 754 752 GUID dest_dsa_guid; 755 drsuapi_D sReplicaUpdateRefsOptions options;753 drsuapi_DrsOptions options; 756 754 } drsuapi_DsReplicaUpdateRefsRequest1; 757 755 758 typedef [switch_type( int32)] union {756 typedef [switch_type(uint32)] union { 759 757 [case(1)] drsuapi_DsReplicaUpdateRefsRequest1 req1; 760 758 } drsuapi_DsReplicaUpdateRefsRequest; … … 762 760 WERROR drsuapi_DsReplicaUpdateRefs( 763 761 [in] policy_handle *bind_handle, 764 [in] int32 level,762 [in] uint32 level, 765 763 [in,switch_is(level)] drsuapi_DsReplicaUpdateRefsRequest req 766 764 ); … … 768 766 /*****************/ 769 767 /* Function 0x05 */ 770 typedef bitmap {771 DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION = 0x00000001,772 DRSUAPI_DS_REPLICA_ADD_WRITEABLE = 0x00000002773 /* TODO ... */774 } drsuapi_DsReplicaAddOptions;775 776 768 777 769 typedef struct { … … 779 771 [charset(UTF16),string] uint16 *source_dsa_address; 780 772 uint8 schedule[84]; 781 drsuapi_D sReplicaAddOptions options;773 drsuapi_DrsOptions options; 782 774 } drsuapi_DsReplicaAddRequest1; 783 775 … … 788 780 [charset(UTF16),string] uint16 *source_dsa_address; 789 781 uint8 schedule[84]; 790 drsuapi_D sReplicaAddOptions options;782 drsuapi_DrsOptions options; 791 783 } drsuapi_DsReplicaAddRequest2; 792 784 793 typedef [switch_type( int32)] union {785 typedef [switch_type(uint32)] union { 794 786 [case(1)] drsuapi_DsReplicaAddRequest1 req1; 795 787 [case(2)] drsuapi_DsReplicaAddRequest2 req2; … … 798 790 WERROR drsuapi_DsReplicaAdd( 799 791 [in] policy_handle *bind_handle, 800 [in] int32 level,792 [in] uint32 level, 801 793 [in,switch_is(level)] drsuapi_DsReplicaAddRequest req 802 794 ); … … 805 797 /*****************/ 806 798 /* Function 0x06 */ 807 typedef bitmap {808 DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION = 0x00000001,809 DRSUAPI_DS_REPLICA_ADD_WRITEABLE = 0x00000002810 /* TODO ... */811 } drsuapi_DsReplicaDeleteOptions;812 813 814 799 typedef struct { 815 800 [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; 816 801 [charset(UTF16),string] uint16 *source_dsa_address; 817 drsuapi_D sReplicaDeleteOptions options;802 drsuapi_DrsOptions options; 818 803 } drsuapi_DsReplicaDelRequest1; 819 804 820 typedef [switch_type( int32)] union {805 typedef [switch_type(uint32)] union { 821 806 [case(1)] drsuapi_DsReplicaDelRequest1 req1; 822 807 } drsuapi_DsReplicaDelRequest; … … 824 809 WERROR drsuapi_DsReplicaDel( 825 810 [in] policy_handle *bind_handle, 826 [in] int32 level,811 [in] uint32 level, 827 812 [in,switch_is(level)] drsuapi_DsReplicaDelRequest req 828 813 ); … … 830 815 /*****************/ 831 816 /* Function 0x07 */ 832 typedef bitmap {833 DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION = 0x00000001,834 DRSUAPI_DS_REPLICA_ADD_WRITEABLE = 0x00000002835 /* TODO ... */836 } drsuapi_DsReplicaModifyOptions;837 838 817 839 818 typedef struct { … … 842 821 [charset(UTF16),string] uint16 *source_dra_address; 843 822 uint8 schedule[84]; 844 uint32replica_flags;823 drsuapi_DrsOptions replica_flags; 845 824 uint32 modify_fields; 846 drsuapi_D sReplicaModifyOptions options;825 drsuapi_DrsOptions options; 847 826 } drsuapi_DsReplicaModRequest1; 848 827 849 typedef [switch_type( int32)] union {828 typedef [switch_type(uint32)] union { 850 829 [case(1)] drsuapi_DsReplicaModRequest1 req1; 851 830 } drsuapi_DsReplicaModRequest; … … 853 832 WERROR drsuapi_DsReplicaMod( 854 833 [in] policy_handle *bind_handle, 855 [in] int32 level,834 [in] uint32 level, 856 835 [in,switch_is(level)] drsuapi_DsReplicaModRequest req 857 836 ); … … 884 863 } drsuapi_DsGetMembershipsCtr1; 885 864 886 typedef [switch_type( int32)] union {865 typedef [switch_type(uint32)] union { 887 866 [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; 888 867 } drsuapi_DsGetMembershipsCtr; … … 894 873 [size_is(count)] drsuapi_DsReplicaObjectIdentifier **info_array; 895 874 uint32 flags; 896 drsuapi_DsMembershipType type;875 [range(1,7)] drsuapi_DsMembershipType type; 897 876 drsuapi_DsReplicaObjectIdentifier *domain; 898 877 } drsuapi_DsGetMembershipsRequest1; 899 878 900 typedef [switch_type( int32)] union {879 typedef [switch_type(uint32)] union { 901 880 [case(1)] drsuapi_DsGetMembershipsRequest1 req1; 902 881 } drsuapi_DsGetMembershipsRequest; 903 882 904 [todo]WERROR drsuapi_DsGetMemberships(883 WERROR drsuapi_DsGetMemberships( 905 884 [in] policy_handle *bind_handle, 906 [in] int32 level,885 [in] uint32 level, 907 886 [in,ref] [switch_is(level)] drsuapi_DsGetMembershipsRequest *req, 908 [out,ref] int32 *level_out,887 [out,ref] uint32 *level_out, 909 888 [out,ref] [switch_is(*level_out)] drsuapi_DsGetMembershipsCtr *ctr 910 889 ); … … 916 895 /*****************/ 917 896 /* Function 0x0b */ 918 typedef struct { 919 uint32 unknown1; 920 uint32 unknown2; 921 [range(0,0x00A00000)] uint32 length; 922 [size_is(length)] uint8 *data; 897 typedef [bitmap32bit] bitmap { 898 DRSUAPI_NT4_CHANGELOG_GET_CHANGELOG = 0x00000001, 899 DRSUAPI_NT4_CHANGELOG_GET_SERIAL_NUMBERS = 0x00000002 900 } drsuapi_DsGetNT4ChangeLogFlags; 901 902 typedef struct { 903 drsuapi_DsGetNT4ChangeLogFlags flags; 904 uint32 preferred_maximum_length; 905 [range(0,0x00A00000)] uint32 restart_length; 906 [size_is(restart_length)] uint8 *restart_data; 923 907 } drsuapi_DsGetNT4ChangeLogRequest1; 924 908 … … 928 912 929 913 typedef struct { 930 [range(0,0x00A00000)] uint32 length1;931 [range(0,0x00A00000)] uint32 l ength2;932 hyper unknown1;933 NTTIME time2;934 hyper unknown3;935 NTTIME time4;936 hyper unknown5;937 NTTIME time6;914 [range(0,0x00A00000)] uint32 restart_length; 915 [range(0,0x00A00000)] uint32 log_length; 916 hyper sam_serial_number; 917 NTTIME sam_creation_time; 918 hyper builtin_serial_number; 919 NTTIME builtin_creation_time; 920 hyper lsa_serial_number; 921 NTTIME lsa_creation_time; 938 922 NTSTATUS status; 939 [size_is( length1)] uint8 *data1;940 [size_is(l ength2)] uint8 *data2;923 [size_is(restart_length)] uint8 *restart_data; 924 [size_is(log_length)] uint8 *log_data; 941 925 } drsuapi_DsGetNT4ChangeLogInfo1; 942 926 … … 945 929 } drsuapi_DsGetNT4ChangeLogInfo; 946 930 947 [todo]WERROR drsuapi_DsGetNT4ChangeLog(931 WERROR drsuapi_DsGetNT4ChangeLog( 948 932 [in] policy_handle *bind_handle, 949 933 [in] uint32 level, … … 975 959 976 960 typedef [v1_enum] enum { 977 DRSUAPI_DS_NAME_FORMAT_UNKNOWN = 0, 978 DRSUAPI_DS_NAME_FORMAT_FQDN_1779 = 1, 979 DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT = 2, 980 DRSUAPI_DS_NAME_FORMAT_DISPLAY = 3, 981 DRSUAPI_DS_NAME_FORMAT_GUID = 6, 982 DRSUAPI_DS_NAME_FORMAT_CANONICAL = 7, 983 DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL = 8, 984 DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX = 9, 985 DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL = 10, 986 DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY = 11, 987 DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN = 12 961 DRSUAPI_DS_NAME_FORMAT_UNKNOWN = 0x00000000, 962 DRSUAPI_DS_NAME_FORMAT_FQDN_1779 = 0x00000001, 963 DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT = 0x00000002, 964 DRSUAPI_DS_NAME_FORMAT_DISPLAY = 0x00000003, 965 DRSUAPI_DS_NAME_FORMAT_GUID = 0x00000006, 966 DRSUAPI_DS_NAME_FORMAT_CANONICAL = 0x00000007, 967 DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL = 0x00000008, 968 DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX = 0x00000009, 969 DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL = 0x0000000A, 970 DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY = 0x0000000B, 971 DRSUAPI_DS_NAME_FORMAT_DNS_DOMAIN = 0x0000000C, 972 DRSUAPI_DS_NAME_FORMAT_UPN_AND_ALTSECID = 0xFFFFFFEF, 973 DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN_EX = 0xFFFFFFF0, 974 DRSUAPI_DS_NAME_FORMAT_LIST_GLOBAL_CATALOG_SERVERS = 0xFFFFFFF1, 975 DRSUAPI_DS_NAME_FORMAT_UPN_FOR_LOGON = 0xFFFFFFF2, 976 DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_WITH_DCS_IN_SITE = 0xFFFFFFF3, 977 DRSUAPI_DS_NAME_FORMAT_STRING_SID_NAME = 0xFFFFFFF4, 978 DRSUAPI_DS_NAME_FORMAT_ALT_SECURITY_IDENTITIES_NAME = 0xFFFFFFF5, 979 DRSUAPI_DS_NAME_FORMAT_LIST_NCS = 0xFFFFFFF6, 980 DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS = 0xFFFFFFF7, 981 DRSUAPI_DS_NAME_FORMAT_MAP_SCHEMA_GUID = 0xFFFFFFF8, 982 DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT_NAME_SANS_DOMAIN = 0xFFFFFFF9, 983 DRSUAPI_DS_NAME_FORMAT_LIST_ROLES = 0xFFFFFFFA, 984 DRSUAPI_DS_NAME_FORMAT_LIST_INFO_FOR_SERVER = 0xFFFFFFFB, 985 DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_FOR_DOMAIN_IN_SITE = 0xFFFFFFFC, 986 DRSUAPI_DS_NAME_FORMAT_LIST_DOMAINS_IN_SITE = 0xFFFFFFFD, 987 DRSUAPI_DS_NAME_FORMAT_LIST_SERVERS_IN_SITE = 0xFFFFFFFE, 988 DRSUAPI_DS_NAME_FORMAT_LIST_SITES = 0xFFFFFFFF 988 989 } drsuapi_DsNameFormat; 989 990 … … 1002 1003 } drsuapi_DsNameRequest1; 1003 1004 1004 typedef [switch_type( int32)] union {1005 typedef [switch_type(uint32)] union { 1005 1006 [case(1)] drsuapi_DsNameRequest1 req1; 1006 1007 } drsuapi_DsNameRequest; … … 1017 1018 } drsuapi_DsNameCtr1; 1018 1019 1019 typedef [switch_type( int32)] union {1020 typedef [switch_type(uint32)] union { 1020 1021 [case(1)] drsuapi_DsNameCtr1 *ctr1; 1021 1022 } drsuapi_DsNameCtr; … … 1023 1024 WERROR drsuapi_DsCrackNames( 1024 1025 [in] policy_handle *bind_handle, 1025 [in] int32 level,1026 [in] uint32 level, 1026 1027 [in,ref,switch_is(level)] drsuapi_DsNameRequest *req, 1027 [out,ref] int32 *level_out,1028 [out,ref] uint32 *level_out, 1028 1029 [out,ref,switch_is(*level_out)] drsuapi_DsNameCtr *ctr 1029 1030 ); … … 1045 1046 } drsuapi_DsWriteAccountSpnRequest1; 1046 1047 1047 typedef [switch_type( int32)] union {1048 typedef [switch_type(uint32)] union { 1048 1049 [case(1)] drsuapi_DsWriteAccountSpnRequest1 req1; 1049 1050 } drsuapi_DsWriteAccountSpnRequest; … … 1053 1054 } drsuapi_DsWriteAccountSpnResult1; 1054 1055 1055 typedef [switch_type( int32)] union {1056 typedef [switch_type(uint32)] union { 1056 1057 [case(1)] drsuapi_DsWriteAccountSpnResult1 res1; 1057 1058 } drsuapi_DsWriteAccountSpnResult; … … 1059 1060 WERROR drsuapi_DsWriteAccountSpn( 1060 1061 [in] policy_handle *bind_handle, 1061 [in] int32 level,1062 [in] uint32 level, 1062 1063 [in,ref,switch_is(level)] drsuapi_DsWriteAccountSpnRequest *req, 1063 [out,ref] int32 *level_out,1064 [out,ref] uint32 *level_out, 1064 1065 [out,ref,switch_is(*level_out)] drsuapi_DsWriteAccountSpnResult *res 1065 1066 ); … … 1073 1074 } drsuapi_DsRemoveDSServerRequest1; 1074 1075 1075 typedef [switch_type( int32)] union {1076 typedef [switch_type(uint32)] union { 1076 1077 [case(1)] drsuapi_DsRemoveDSServerRequest1 req1; 1077 1078 } drsuapi_DsRemoveDSServerRequest; … … 1081 1082 } drsuapi_DsRemoveDSServerResult1; 1082 1083 1083 typedef [switch_type( int32)] union {1084 typedef [switch_type(uint32)] union { 1084 1085 [case(1)] drsuapi_DsRemoveDSServerResult1 res1; 1085 1086 } drsuapi_DsRemoveDSServerResult; … … 1087 1088 WERROR drsuapi_DsRemoveDSServer( 1088 1089 [in] policy_handle *bind_handle, 1089 [in] int32 level,1090 [in] uint32 level, 1090 1091 [in,ref,switch_is(level)] drsuapi_DsRemoveDSServerRequest *req, 1091 [out,ref] int32 *level_out,1092 [out,ref] uint32 *level_out, 1092 1093 [out,ref,switch_is(*level_out)] drsuapi_DsRemoveDSServerResult *res 1093 1094 ); … … 1237 1238 const char *DRSUAPI_NTDSDSA_KRB5_SERVICE_GUID = "E3514235-4B06-11D1-AB04-00C04FC2DCD2"; 1238 1239 1240 /* Error codes to classify an error that occurs 1241 * during a search for, or the update of, 1242 * a directory object */ 1243 typedef [v1_enum] enum { 1244 DRSUAPI_DIRERR_OK = 0, 1245 DRSUAPI_DIRERR_ATTRIBUTE = 1, 1246 DRSUAPI_DIRERR_NAME = 2, 1247 DRSUAPI_DIRERR_REFERRAL = 3, 1248 DRSUAPI_DIRERR_SECURITY = 4, 1249 DRSUAPI_DIRERR_SERVICE = 5, 1250 DRSUAPI_DIRERR_UPDATE = 6, 1251 DRSUAPI_DIRERR_SYSTEM = 7 1252 } drsuapi_DsAddEntry_DirErr; 1253 1239 1254 /* 1240 * please note the the current idl 1241 * for DsAddEntry does only parse 1242 * what I saw between 2 w2k3 boxes 1243 * in my dssync experiments I got some other replies 1244 * so all I want to say is that this is very incomplete yet... 1245 * --metze 1255 * Ref: DRS_MSG_ADDENTRYREQ_V2, [MS-DRSR]: 4.1.1.1.3 1246 1256 */ 1247 1257 typedef struct { … … 1249 1259 } drsuapi_DsAddEntryRequest2; 1250 1260 1251 typedef [switch_type(int32)] union { 1261 /* Buffer type is actually more 1262 * like a semi Flags 1263 * Ref: DRS_SecBuffer, [MS-DRSR]: 5.41 */ 1264 typedef [v1_enum,noprint] enum { 1265 DRSUAPI_SECBUFFER_EMPTY = 0x00000000, 1266 DRSUAPI_SECBUFFER_DATA = 0x00000001, 1267 DRSUAPI_SECBUFFER_TOKEN = 0x00000002, 1268 DRSUAPI_SECBUFFER_PKG_PARAMS = 0x00000003, 1269 DRSUAPI_SECBUFFER_MISSING = 0x00000004, 1270 DRSUAPI_SECBUFFER_EXTRA = 0x00000005, 1271 DRSUAPI_SECBUFFER_STREAM_TRAILER = 0x00000006, 1272 DRSUAPI_SECBUFFER_STREAM_HEADER = 0x00000007, 1273 DRSUAPI_SECBUFFER_READONLY = 0x80000000 1274 } drsuapi_SecBufferType; 1275 1276 typedef struct { 1277 [range(0,10000)] uint32 buf_size; 1278 drsuapi_SecBufferType buf_type; 1279 [size_is(buf_size)] uint8 *buffer; 1280 } drsuapi_SecBuffer; 1281 1282 typedef struct { 1283 [value(0)] uint32 version; 1284 [range(0,10000)] uint32 buff_count; 1285 [size_is(buff_count)] drsuapi_SecBuffer *buffers; 1286 } drsuapi_SecBufferDesc; 1287 1288 /* 1289 * Ref: DRS_MSG_ADDENTRYREQ_V3, [MS-DRSR]: 4.1.1.1.4 1290 */ 1291 typedef struct { 1292 drsuapi_DsReplicaObjectListItem first_object; 1293 drsuapi_SecBufferDesc *client_creds; 1294 } drsuapi_DsAddEntryRequest3; 1295 1296 typedef [switch_type(uint32)] union { 1252 1297 [case(2)] drsuapi_DsAddEntryRequest2 req2; 1298 [case(3)] drsuapi_DsAddEntryRequest3 req3; 1253 1299 } drsuapi_DsAddEntryRequest; 1254 1300 1255 typedef struct { 1256 uint32 unknown1; 1301 /* Generic extended error info 1302 * commonly used in most places 1303 * where rich error info is returned */ 1304 typedef struct { 1305 uint32 dsid; /* implementation-specific diagnostic code */ 1306 WERROR extended_err; /* 0, STATUS code, or Windows error code */ 1307 uint32 extended_data; /* implementation-specific diagnostic code */ 1308 uint16 problem; /* 0 or PROBLEM error code */ 1309 } drsuapi_DsAddEntryErrorInfoX; 1310 1311 /* Attribute errors 1312 * Ref: ATRERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.11 */ 1313 typedef struct { 1314 uint32 dsid; 1315 WERROR extended_err; 1316 uint32 extended_data; 1317 uint16 problem; 1318 drsuapi_DsAttributeId attid; 1319 boolean32 is_val_returned; 1320 drsuapi_DsAttributeValue attr_val; 1321 } drsuapi_DsAddEntry_AttrErr_V1; 1322 1323 typedef [noprint] struct { 1324 drsuapi_DsAddEntry_AttrErrListItem_V1 *next; 1325 drsuapi_DsAddEntry_AttrErr_V1 err_data; 1326 } drsuapi_DsAddEntry_AttrErrListItem_V1; 1327 1328 typedef struct { 1329 drsuapi_DsReplicaObjectIdentifier *id; 1330 uint32 count; 1331 drsuapi_DsAddEntry_AttrErrListItem_V1 first; 1332 } drsuapi_DsAddEntryErrorInfo_Attr_V1; 1333 1334 /* Name resolution error 1335 * Ref: NAMERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.14 */ 1336 typedef struct { 1337 uint32 dsid; 1338 WERROR extended_err; 1339 uint32 extended_data; 1340 uint16 problem; 1341 drsuapi_DsReplicaObjectIdentifier *id_matched; /* The best match for the supplied object identity */ 1342 } drsuapi_DsAddEntryErrorInfo_Name_V1; 1343 1344 /* Referral error 1345 * Ref: REFERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.15 */ 1346 typedef struct { 1347 [value(83)] uint8 name_res; /* Must be 'S' */ 1348 [value(0)] uint8 unused_pad; 1349 [value(0)] uint16 next_rdn; 1350 } drsuapi_NameResOp_V1; 1351 1352 typedef [enum16bit] enum { 1353 DRSUAPI_CH_REFTYPE_SUPERIOR = 0x0000, /* referral to a superior DC */ 1354 DRSUAPI_CH_REFTYPE_SUBORDINATE = 0x0001, /* referral to a subordinate DC */ 1355 DRSUAPI_CH_REFTYPE_NSSR = 0x0002, /* Not used */ 1356 DRSUAPI_CH_REFTYPE_CROSS = 0x0003 /* A referral to an external crossRef object */ 1357 } drsuapi_DsAddEntry_RefType; 1358 1359 typedef [enum8bit] enum { 1360 DRSUAPI_SE_CHOICE_BASE_ONLY = 0x00, 1361 DRSUAPI_SE_CHOICE_IMMED_CHLDRN = 0x01, 1362 DRSUAPI_SE_CHOICE_WHOLE_SUBTREE = 0x02 1363 } drsuapi_DsAddEntry_ChoiceType; 1364 1365 /* list of network names of the DCs 1366 * to which the referral is directed */ 1367 typedef struct { 1368 drsuapi_DsaAddressListItem_V1 *next; 1369 lsa_String *address; 1370 } drsuapi_DsaAddressListItem_V1; 1371 1372 typedef struct { 1373 drsuapi_DsReplicaObjectIdentifier *id_target; /* object to which the referral is directed */ 1374 drsuapi_NameResOp_V1 op_state; 1375 [value(0)] uint16 rdn_alias; 1376 [value(0)] uint16 rdn_internal; 1377 drsuapi_DsAddEntry_RefType ref_type; 1378 uint16 addr_list_count; 1379 drsuapi_DsaAddressListItem_V1 *addr_list; 1380 drsuapi_DsAddEntry_RefErrListItem_V1 *next; 1381 boolean32 is_choice_set; 1382 drsuapi_DsAddEntry_ChoiceType choice; 1383 } drsuapi_DsAddEntry_RefErrListItem_V1; 1384 1385 typedef struct { 1386 uint32 dsid; 1387 WERROR extended_err; 1388 uint32 extended_data; 1389 drsuapi_DsAddEntry_RefErrListItem_V1 refer; 1390 } drsuapi_DsAddEntryErrorInfo_Referr_V1; 1391 1392 typedef [switch_type(uint32)] union { 1393 [case(1)] drsuapi_DsAddEntryErrorInfo_Attr_V1 attr_err; 1394 [case(2)] drsuapi_DsAddEntryErrorInfo_Name_V1 name_err; 1395 [case(3)] drsuapi_DsAddEntryErrorInfo_Referr_V1 referral_err; 1396 [case(4)] drsuapi_DsAddEntryErrorInfoX security_err; 1397 [case(5)] drsuapi_DsAddEntryErrorInfoX service_err; 1398 [case(6)] drsuapi_DsAddEntryErrorInfoX update_err; 1399 [case(7)] drsuapi_DsAddEntryErrorInfoX system_err; 1400 } drsuapi_DsAddEntryErrorInfo; 1401 1402 typedef struct { 1257 1403 WERROR status; 1258 uint32 unknown2; 1259 uint16 unknown3; 1260 } drsuapi_DsAddEntryErrorInfoX; 1261 1262 typedef struct { 1263 [range(0,10485760)] uint32 size; 1264 [size_is(size)] uint8 *data; 1265 } drsuapi_DsAddEntryExtraErrorBuffer; 1266 1267 typedef struct { 1268 drsuapi_DsAddEntryErrorInfoX error; 1269 drsuapi_DsAttributeId attid; 1270 uint32 unknown2; 1271 drsuapi_DsAddEntryExtraErrorBuffer buffer; 1272 } drsuapi_DsAddEntryExtraError1; 1273 1274 typedef /*[noprint]*/ struct { 1275 drsuapi_DsAddEntryErrorListItem1 *next; 1276 drsuapi_DsAddEntryExtraError1 error; 1277 } drsuapi_DsAddEntryErrorListItem1; 1278 1279 typedef struct { 1280 drsuapi_DsReplicaObjectIdentifier *id; 1281 WERROR status; 1282 drsuapi_DsAddEntryErrorListItem1 first; 1283 } drsuapi_DsAddEntryErrorInfo1; 1284 1285 typedef [switch_type(uint32)] union { 1286 [case(1)] drsuapi_DsAddEntryErrorInfo1 error1; 1287 /* [case(2)] drsuapi_DsAddEntryErrorInfo2 error2; 1288 [case(3)] drsuapi_DsAddEntryErrorInfo3 error3; 1289 */ [case(4)] drsuapi_DsAddEntryErrorInfoX errorX; 1290 [case(5)] drsuapi_DsAddEntryErrorInfoX errorX; 1291 [case(6)] drsuapi_DsAddEntryErrorInfoX errorX; 1292 [case(7)] drsuapi_DsAddEntryErrorInfoX errorX; 1293 } drsuapi_DsAddEntryErrorInfo; 1294 1295 typedef struct { 1296 WERROR status; 1297 uint32 level; 1298 [switch_is(level)] drsuapi_DsAddEntryErrorInfo *info; 1299 } drsuapi_DsAddEntryError1; 1300 1301 typedef [switch_type(uint32)] union { 1302 [case(1)] drsuapi_DsAddEntryError1 info1; 1303 } drsuapi_DsAddEntryError; 1404 drsuapi_DsAddEntry_DirErr dir_err; 1405 [switch_is(dir_err)] drsuapi_DsAddEntryErrorInfo *info; 1406 } drsuapi_DsAddEntry_ErrData_V1; 1407 1408 typedef [switch_type(uint32)] union { 1409 [case(1)] drsuapi_DsAddEntry_ErrData_V1 v1; 1410 } drsuapi_DsAddEntry_ErrData; 1304 1411 1305 1412 typedef struct { … … 1310 1417 typedef struct { 1311 1418 drsuapi_DsReplicaObjectIdentifier *id; 1312 uint32 unknown1; 1313 drsuapi_DsAddEntryErrorInfoX error; 1419 drsuapi_DsAddEntry_DirErr dir_err; 1420 uint32 dsid; /* implementation-specific diagnostic code */ 1421 WERROR extended_err; /* 0, STATUS code, or Windows error code */ 1422 uint32 extended_data; /* implementation-specific diagnostic code */ 1423 uint16 problem; /* 0 or PROBLEM error code */ 1314 1424 [range(0,10000)] uint32 count; 1315 1425 [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects; … … 1318 1428 typedef struct { 1319 1429 drsuapi_DsReplicaObjectIdentifier *id; 1320 uint32 level;1321 [switch_is( level)] drsuapi_DsAddEntryError *error;1430 uint32 err_ver; /* Must be 1 */ 1431 [switch_is(err_ver)] drsuapi_DsAddEntry_ErrData *err_data; 1322 1432 [range(0,10000)] uint32 count; 1323 1433 [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects; 1324 1434 } drsuapi_DsAddEntryCtr3; 1325 1435 1326 typedef [switch_type( int32)] union {1436 typedef [switch_type(uint32)] union { 1327 1437 [case(2)] drsuapi_DsAddEntryCtr2 ctr2; 1328 1438 [case(3)] drsuapi_DsAddEntryCtr3 ctr3; … … 1331 1441 [public] WERROR drsuapi_DsAddEntry( 1332 1442 [in] policy_handle *bind_handle, 1333 [in] int32 level,1443 [in] uint32 level, 1334 1444 [in,ref,switch_is(level)] drsuapi_DsAddEntryRequest *req, 1335 [out,ref] int32 *level_out,1445 [out,ref] uint32 *level_out, 1336 1446 [out,ref,switch_is(*level_out)] drsuapi_DsAddEntryCtr *ctr 1337 1447 ); … … 1378 1488 DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2 = 9, 1379 1489 DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2 = 10, 1380 DRSUAPI_DS_REPLICA_INFO_ NEIGHBORS02= -2,1381 DRSUAPI_DS_REPLICA_INFO_C ONNECTIONS04= -4,1382 DRSUAPI_DS_REPLICA_INFO_ CURSORS05= -5,1383 DRSUAPI_DS_REPLICA_INFO_ 06= -61490 DRSUAPI_DS_REPLICA_INFO_REPSTO = -2, 1491 DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS = -4, 1492 DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1 = -5, 1493 DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS = -6 1384 1494 } drsuapi_DsReplicaInfoType; 1385 1495 … … 1387 1497 drsuapi_DsReplicaInfoType info_type; 1388 1498 [charset(UTF16),string] uint16 *object_dn; 1389 GUID guid1;1499 GUID source_dsa_guid; 1390 1500 } drsuapi_DsReplicaGetInfoRequest1; 1391 1501 … … 1393 1503 drsuapi_DsReplicaInfoType info_type; 1394 1504 [charset(UTF16),string] uint16 *object_dn; 1395 GUID guid1;1396 uint32 unknown1;1397 [charset(UTF16),string] uint16 * string1;1398 [charset(UTF16),string] uint16 * string2;1399 uint32 unknown2;1505 GUID source_dsa_guid; 1506 uint32 flags; 1507 [charset(UTF16),string] uint16 *attribute_name; 1508 [charset(UTF16),string] uint16 *value_dn_str; 1509 uint32 enumeration_context; 1400 1510 } drsuapi_DsReplicaGetInfoRequest2; 1401 1511 … … 1410 1520 [charset(UTF16),string] uint16 *source_dsa_address; 1411 1521 [charset(UTF16),string] uint16 *transport_obj_dn; 1412 drsuapi_D sReplicaNeighbourFlags replica_flags;1522 drsuapi_DrsOptions replica_flags; 1413 1523 uint32 reserved; 1414 1524 GUID naming_context_obj_guid; … … 1473 1583 } drsuapi_DsReplicaOpType; 1474 1584 1475 typedef [switch_type(drsuapi_DsReplicaOpType)] union {1476 [case(DRSUAPI_DS_REPLICA_OP_TYPE_SYNC)] drsuapi_DsReplicaSyncOptions sync;1477 [case(DRSUAPI_DS_REPLICA_OP_TYPE_ADD)] drsuapi_DsReplicaAddOptions add;1478 [case(DRSUAPI_DS_REPLICA_OP_TYPE_DELETE)] drsuapi_DsReplicaDeleteOptions op_delete;1479 [case(DRSUAPI_DS_REPLICA_OP_TYPE_MODIFY)] drsuapi_DsReplicaModifyOptions modify;1480 [case(DRSUAPI_DS_REPLICA_OP_TYPE_UPDATE_REFS)] drsuapi_DsReplicaUpdateRefsOptions update_refs;1481 [default] uint32 unknown;1482 } drsuapi_DsRplicaOpOptions;1483 1484 1585 typedef struct { 1485 1586 NTTIME operation_start; … … 1487 1588 uint32 priority; 1488 1589 drsuapi_DsReplicaOpType operation_type; 1489 [switch_is(operation_type)] drsuapi_DsRplicaOpOptions options;1590 drsuapi_DrsOptions options; 1490 1591 [charset(UTF16),string] uint16 *nc_dn; 1491 1592 [charset(UTF16),string] uint16 *remote_dsa_obj_dn; … … 1517 1618 typedef struct { 1518 1619 uint32 count; 1519 int32 enumeration_context;1620 uint32 enumeration_context; 1520 1621 [size_is(count)] drsuapi_DsReplicaAttrValMetaData array[]; 1521 1622 } drsuapi_DsReplicaAttrValMetaDataCtr; … … 1523 1624 typedef struct { 1524 1625 uint32 count; 1525 int32 enumeration_context;1626 uint32 enumeration_context; 1526 1627 [size_is(count)] drsuapi_DsReplicaCursor2 array[]; 1527 1628 } drsuapi_DsReplicaCursor2Ctr; … … 1536 1637 typedef struct { 1537 1638 uint32 count; 1538 int32 enumeration_context;1639 uint32 enumeration_context; 1539 1640 [size_is(count)] drsuapi_DsReplicaCursor3 array[]; 1540 1641 } drsuapi_DsReplicaCursor3Ctr; … … 1552 1653 typedef struct { 1553 1654 uint32 count; 1554 int32 enumeration_context;1655 uint32 enumeration_context; 1555 1656 [size_is(count)] drsuapi_DsReplicaObjMetaData2 array[]; 1556 1657 } drsuapi_DsReplicaObjMetaData2Ctr; … … 1573 1674 typedef struct { 1574 1675 uint32 count; 1575 int32 enumeration_context;1676 uint32 enumeration_context; 1576 1677 [size_is(count)] drsuapi_DsReplicaAttrValMetaData2 array[]; 1577 1678 } drsuapi_DsReplicaAttrValMetaData2Ctr; … … 1622 1723 [case(DRSUAPI_DS_REPLICA_INFO_OBJ_METADATA2)] drsuapi_DsReplicaObjMetaData2Ctr *objmetadata2; 1623 1724 [case(DRSUAPI_DS_REPLICA_INFO_ATTRIBUTE_VALUE_METADATA2)] drsuapi_DsReplicaAttrValMetaData2Ctr *attrvalmetadata2; 1624 [case(DRSUAPI_DS_REPLICA_INFO_ NEIGHBORS02)] drsuapi_DsReplicaNeighbourCtr *neighbours02;1625 [case(DRSUAPI_DS_REPLICA_INFO_C ONNECTIONS04)] drsuapi_DsReplicaConnection04Ctr *connections04;1626 [case(DRSUAPI_DS_REPLICA_INFO_ CURSORS05)] drsuapi_DsReplicaCursorCtrEx *cursors05;1627 [case(DRSUAPI_DS_REPLICA_INFO_ 06)] drsuapi_DsReplica06Ctr *i06;1725 [case(DRSUAPI_DS_REPLICA_INFO_REPSTO)] drsuapi_DsReplicaNeighbourCtr *repsto; 1726 [case(DRSUAPI_DS_REPLICA_INFO_CLIENT_CONTEXTS)] drsuapi_DsReplicaConnection04Ctr *clientctx; 1727 [case(DRSUAPI_DS_REPLICA_INFO_UPTODATE_VECTOR_V1)] drsuapi_DsReplicaCursorCtrEx *udv1; 1728 [case(DRSUAPI_DS_REPLICA_INFO_SERVER_OUTGOING_CALLS)] drsuapi_DsReplica06Ctr *srvoutgoingcalls; 1628 1729 } drsuapi_DsReplicaInfo; 1629 1730 … … 1648 1749 } drsuapi_DsGetMemberships2Ctr1; 1649 1750 1650 typedef [switch_type( int32)] union {1751 typedef [switch_type(uint32)] union { 1651 1752 [case(1)] drsuapi_DsGetMembershipsCtr1 ctr1; 1652 1753 } drsuapi_DsGetMemberships2Ctr; … … 1657 1758 } drsuapi_DsGetMemberships2Request1; 1658 1759 1659 typedef [switch_type( int32)] union {1760 typedef [switch_type(uint32)] union { 1660 1761 [case(1)] drsuapi_DsGetMemberships2Request1 req1; 1661 1762 } drsuapi_DsGetMemberships2Request; … … 1663 1764 WERROR drsuapi_DsGetMemberships2( 1664 1765 [in] policy_handle *bind_handle, 1665 [in] int32 level,1766 [in] uint32 level, 1666 1767 [in,ref] [switch_is(level)] drsuapi_DsGetMemberships2Request *req, 1667 [out,ref] int32 *level_out,1768 [out,ref] uint32 *level_out, 1668 1769 [out,ref] [switch_is(*level_out)] drsuapi_DsGetMemberships2Ctr *ctr 1669 1770 ); … … 1687 1788 [range(0,10000)] uint32 num_info; 1688 1789 [size_is(num_info)] drsuapi_DsSiteCostInfo *info; 1689 uint32 unknown;1790 [value(0)] uint32 flags_reserved; 1690 1791 } drsuapi_QuerySitesByCostCtr1; 1691 1792 1692 typedef [switch_type( int32)] union {1793 typedef [switch_type(uint32)] union { 1693 1794 [case(1)] drsuapi_QuerySitesByCostCtr1 ctr1; 1694 1795 } drsuapi_QuerySitesByCostCtr; … … 1701 1802 } drsuapi_QuerySitesByCostRequest1; 1702 1803 1703 typedef [switch_type( int32)] union {1804 typedef [switch_type(uint32)] union { 1704 1805 [case(1)] drsuapi_QuerySitesByCostRequest1 req1; 1705 1806 } drsuapi_QuerySitesByCostRequest; … … 1707 1808 WERROR drsuapi_QuerySitesByCost( 1708 1809 [in] policy_handle *bind_handle, 1709 [in] int32 level,1810 [in] uint32 level, 1710 1811 [in,ref] [switch_is(level)] drsuapi_QuerySitesByCostRequest *req, 1711 [out,ref] int32 *level_out,1812 [out,ref] uint32 *level_out, 1712 1813 [out,ref] [switch_is(*level_out)] drsuapi_QuerySitesByCostCtr *ctr 1713 1814 );
Note:
See TracChangeset
for help on using the changeset viewer.