16
16
typedef bitmap samr_GroupAttrs samr_GroupAttrs;
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
18
61
/*****************/
19
62
/* Function 0x00 */
20
63
typedef [bitmap32bit] bitmap {
150
194
[charset(UTF16),size_is(__ndr_size_dn+1)] uint16 dn[];
151
195
} drsuapi_DsReplicaObjectIdentifier;
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;
181
drsuapi_DsReplicaObjectIdentifier *naming_context;
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_DsReplicaSyncOptions options;
200
astring *source_dsa_dns; /* Source DSA dns_name in <guid>._msdcs.<domain_dns> form */
201
drsuapi_DrsOptions options;
185
202
} drsuapi_DsReplicaSyncRequest1;
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,
194
[in,switch_is(level)] drsuapi_DsReplicaSyncRequest req
211
[in,switch_is(level)] drsuapi_DsReplicaSyncRequest *req
197
214
/*****************/
215
232
[size_is(count)] drsuapi_DsReplicaCursor cursors[];
216
233
} drsuapi_DsReplicaCursorCtrEx;
218
typedef [public] bitmap {
219
/* the _WRITEABLE flag indicates a replication with all attributes
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,
240
* the following NOTE applies to DsGetNCChangesRequest5:
241
* - the data is only compressed when 10 or more objects are replicated
242
* - but there could also be a size limit of 35 KBytes or something like that
243
* - the reply is DsGetNCChangesCtr2
244
* - maybe the same applies to DsGetNCChangesRequest8...
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 = 0x40000000
251
} drsuapi_DsReplicaNeighbourFlags;
253
235
typedef [flag(NDR_PAHEX),v1_enum] enum {
254
236
DRSUAPI_EXOP_NONE = 0x00000000,
255
237
DRSUAPI_EXOP_FSMO_REQ_ROLE = 0x00000001,
400
382
} drsuapi_DsObjectClassId;
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,
476
DRSUAPI_ATTID_INVALID = 0xFFFFFFFF
472
477
} drsuapi_DsAttributeId;
787
779
drsuapi_DsReplicaObjectIdentifier *transport_dn;
788
780
[charset(UTF16),string] uint16 *source_dsa_address;
789
781
uint8 schedule[84];
790
drsuapi_DsReplicaAddOptions options;
782
drsuapi_DrsOptions options;
791
783
} drsuapi_DsReplicaAddRequest2;
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;
796
788
} drsuapi_DsReplicaAddRequest;
798
790
WERROR drsuapi_DsReplicaAdd(
799
791
[in] policy_handle *bind_handle,
801
793
[in,switch_is(level)] drsuapi_DsReplicaAddRequest req
805
797
/*****************/
806
798
/* Function 0x06 */
808
DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION = 0x00000001,
809
DRSUAPI_DS_REPLICA_ADD_WRITEABLE = 0x00000002
811
} drsuapi_DsReplicaDeleteOptions;
815
800
[ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
816
801
[charset(UTF16),string] uint16 *source_dsa_address;
817
drsuapi_DsReplicaDeleteOptions options;
802
drsuapi_DrsOptions options;
818
803
} drsuapi_DsReplicaDelRequest1;
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,
827
812
[in,switch_is(level)] drsuapi_DsReplicaDelRequest req
830
815
/*****************/
831
816
/* Function 0x07 */
833
DRSUAPI_DS_REPLICA_ADD_ASYNCHRONOUS_OPERATION = 0x00000001,
834
DRSUAPI_DS_REPLICA_ADD_WRITEABLE = 0x00000002
836
} drsuapi_DsReplicaModifyOptions;
840
819
[ref] drsuapi_DsReplicaObjectIdentifier *naming_context;
842
821
[charset(UTF16),string] uint16 *source_dra_address;
843
822
uint8 schedule[84];
844
uint32 replica_flags;
823
drsuapi_DrsOptions replica_flags;
845
824
uint32 modify_fields;
846
drsuapi_DsReplicaModifyOptions options;
825
drsuapi_DrsOptions options;
847
826
} drsuapi_DsReplicaModRequest1;
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,
856
835
[in,switch_is(level)] drsuapi_DsReplicaModRequest req
974
958
} drsuapi_DsNameFlags;
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;
1237
1238
const char *DRSUAPI_NTDSDSA_KRB5_SERVICE_GUID = "E3514235-4B06-11D1-AB04-00C04FC2DCD2";
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;
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...
1255
* Ref: DRS_MSG_ADDENTRYREQ_V2, [MS-DRSR]: 4.1.1.1.3
1247
1257
typedef struct {
1248
1258
drsuapi_DsReplicaObjectListItem first_object;
1249
1259
} drsuapi_DsAddEntryRequest2;
1251
typedef [switch_type(int32)] union {
1261
/* Buffer type is actually more
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;
1277
[range(0,10000)] uint32 buf_size;
1278
drsuapi_SecBufferType buf_type;
1279
[size_is(buf_size)] uint8 *buffer;
1280
} drsuapi_SecBuffer;
1283
[value(0)] uint32 version;
1284
[range(0,10000)] uint32 buff_count;
1285
[size_is(buff_count)] drsuapi_SecBuffer *buffers;
1286
} drsuapi_SecBufferDesc;
1289
* Ref: DRS_MSG_ADDENTRYREQ_V3, [MS-DRSR]: 4.1.1.1.4
1292
drsuapi_DsReplicaObjectListItem first_object;
1293
drsuapi_SecBufferDesc *client_creds;
1294
} drsuapi_DsAddEntryRequest3;
1296
typedef [switch_type(uint32)] union {
1252
1297
[case(2)] drsuapi_DsAddEntryRequest2 req2;
1298
[case(3)] drsuapi_DsAddEntryRequest3 req3;
1253
1299
} drsuapi_DsAddEntryRequest;
1301
/* Generic extended error info
1302
* commonly used in most places
1303
* where rich error info is returned */
1255
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 */
1260
1309
} drsuapi_DsAddEntryErrorInfoX;
1263
[range(0,10485760)] uint32 size;
1264
[size_is(size)] uint8 *data;
1265
} drsuapi_DsAddEntryExtraErrorBuffer;
1268
drsuapi_DsAddEntryErrorInfoX error;
1312
* Ref: ATRERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.11 */
1315
WERROR extended_err;
1316
uint32 extended_data;
1269
1318
drsuapi_DsAttributeId attid;
1271
drsuapi_DsAddEntryExtraErrorBuffer buffer;
1272
} drsuapi_DsAddEntryExtraError1;
1319
boolean32 is_val_returned;
1320
drsuapi_DsAttributeValue attr_val;
1321
} drsuapi_DsAddEntry_AttrErr_V1;
1274
typedef /*[noprint]*/ struct {
1275
drsuapi_DsAddEntryErrorListItem1 *next;
1276
drsuapi_DsAddEntryExtraError1 error;
1277
} drsuapi_DsAddEntryErrorListItem1;
1323
typedef [noprint] struct {
1324
drsuapi_DsAddEntry_AttrErrListItem_V1 *next;
1325
drsuapi_DsAddEntry_AttrErr_V1 err_data;
1326
} drsuapi_DsAddEntry_AttrErrListItem_V1;
1279
1328
typedef struct {
1280
1329
drsuapi_DsReplicaObjectIdentifier *id;
1282
drsuapi_DsAddEntryErrorListItem1 first;
1283
} drsuapi_DsAddEntryErrorInfo1;
1331
drsuapi_DsAddEntry_AttrErrListItem_V1 first;
1332
} drsuapi_DsAddEntryErrorInfo_Attr_V1;
1334
/* Name resolution error
1335
* Ref: NAMERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.14 */
1338
WERROR extended_err;
1339
uint32 extended_data;
1341
drsuapi_DsReplicaObjectIdentifier *id_matched; /* The best match for the supplied object identity */
1342
} drsuapi_DsAddEntryErrorInfo_Name_V1;
1345
* Ref: REFERR_DRS_WIRE_V1, [MS-DRSR]: 4.1.1.1.15 */
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;
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;
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;
1365
/* list of network names of the DCs
1366
* to which the referral is directed */
1368
drsuapi_DsaAddressListItem_V1 *next;
1369
lsa_String *address;
1370
} drsuapi_DsaAddressListItem_V1;
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;
1387
WERROR extended_err;
1388
uint32 extended_data;
1389
drsuapi_DsAddEntry_RefErrListItem_V1 refer;
1390
} drsuapi_DsAddEntryErrorInfo_Referr_V1;
1285
1392
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;
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;
1293
1400
} drsuapi_DsAddEntryErrorInfo;
1295
1402
typedef struct {
1298
[switch_is(level)] drsuapi_DsAddEntryErrorInfo *info;
1299
} drsuapi_DsAddEntryError1;
1404
drsuapi_DsAddEntry_DirErr dir_err;
1405
[switch_is(dir_err)] drsuapi_DsAddEntryErrorInfo *info;
1406
} drsuapi_DsAddEntry_ErrData_V1;
1301
1408
typedef [switch_type(uint32)] union {
1302
[case(1)] drsuapi_DsAddEntryError1 info1;
1303
} drsuapi_DsAddEntryError;
1409
[case(1)] drsuapi_DsAddEntry_ErrData_V1 v1;
1410
} drsuapi_DsAddEntry_ErrData;
1305
1412
typedef struct {