diff options
Diffstat (limited to 'source3/librpc/idl/drsuapi.idl')
-rw-r--r-- | source3/librpc/idl/drsuapi.idl | 94 |
1 files changed, 69 insertions, 25 deletions
diff --git a/source3/librpc/idl/drsuapi.idl b/source3/librpc/idl/drsuapi.idl index f6fd618da8..168fd5e0a9 100644 --- a/source3/librpc/idl/drsuapi.idl +++ b/source3/librpc/idl/drsuapi.idl @@ -192,10 +192,10 @@ interface drsuapi } drsuapi_DsReplicaCursor; typedef struct { - uint32 u1; - uint32 u2; + [value(1)] uint32 version; + [value(0)] uint32 reserved1; [range(0,0x100000)] uint32 count; - uint32 u3; + [value(0)] uint32 reserved2; [size_is(count)] drsuapi_DsReplicaCursor cursors[]; } drsuapi_DsReplicaCursorCtrEx; @@ -230,6 +230,37 @@ interface drsuapi DRSUAPI_DS_REPLICA_NEIGHBOUR_PARTIAL_ATTRIBUTE_SET = 0x40000000 } drsuapi_DsReplicaNeighbourFlags; + typedef [flag(NDR_PAHEX),v1_enum] enum { + DRSUAPI_EXOP_NONE = 0x00000000, + DRSUAPI_EXOP_FSMO_REQ_ROLE = 0x00000001, + DRSUAPI_EXOP_FSMO_RID_ALLOC = 0x00000002, + DRSUAPI_EXOP_FSMO_RID_REQ_ROLE = 0x00000003, + DRSUAPI_EXOP_FSMO_REQ_PDC = 0x00000004, + DRSUAPI_EXOP_FSMO_ABANDON_ROLE = 0x00000005, + DRSUAPI_EXOP_REPL_OBJ = 0x00000006, + DRSUAPI_EXOP_REPL_SECRET = 0x00000007 + } drsuapi_DsExtendedOperation; + + typedef [flag(NDR_PAHEX),v1_enum] enum { + DRSUAPI_EXOP_ERR_NONE = 0x00000000, + DRSUAPI_EXOP_ERR_SUCCESS = 0x00000001, + DRSUAPI_EXOP_ERR_UNKNOWN_OP = 0x00000002, + DRSUAPI_EXOP_ERR_FSMO_NOT_OWNER = 0x00000003, + DRSUAPI_EXOP_ERR_UPDATE_ERR = 0x00000004, + DRSUAPI_EXOP_ERR_EXCEPTION = 0x00000005, + DRSUAPI_EXOP_ERR_UNKNOWN_CALLER = 0x00000006, + DRSUAPI_EXOP_ERR_RID_ALLOC = 0x00000007, + DRSUAPI_EXOP_ERR_FSMO_OWNER_DELETED = 0x00000008, + DRSUAPI_EXOP_ERR_FMSO_PENDING_OP = 0x00000009, + DRSUAPI_EXOP_ERR_MISMATCH = 0x0000000A, + DRSUAPI_EXOP_ERR_COULDNT_CONTACT = 0x0000000B, + DRSUAPI_EXOP_ERR_FSMO_REFUSING_ROLES = 0x0000000C, + DRSUAPI_EXOP_ERR_DIR_ERROR = 0x0000000D, + DRSUAPI_EXOP_ERR_FSMO_MISSING_SETTINGS = 0x0000000E, + DRSUAPI_EXOP_ERR_ACCESS_DENIED = 0x0000000F, + DRSUAPI_EXOP_ERR_PARAM_ERROR = 0x00000010 + } drsuapi_DsExtendedError; + typedef struct { GUID destination_dsa_guid; GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ @@ -239,8 +270,8 @@ interface drsuapi drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ uint32 max_ndr_size; /* w2k3 seems to ignore this */ - uint32 unknown4; - hyper h1; + drsuapi_DsExtendedOperation extended_op; + hyper fsmo_info; } drsuapi_DsGetNCChangesRequest5; /* @@ -413,6 +444,13 @@ interface drsuapi } drsuapi_DsAttributeId; typedef struct { + [value(1)] uint32 version; + [value(0)] uint32 reserved1; + [range(1,0x100000)] uint32 num_attids; + [size_is(num_attids)] drsuapi_DsAttributeId attids[]; + } drsuapi_DsPartialAttributeSet; + + typedef struct { GUID destination_dsa_guid; GUID source_dsa_invocation_id; /* the 'invocationId' field of the CN=NTDS Settings object */ [ref] drsuapi_DsReplicaObjectIdentifier *naming_context; @@ -421,10 +459,10 @@ interface drsuapi drsuapi_DsReplicaNeighbourFlags replica_flags; uint32 max_object_count; /* w2k3 uses min(133,max(100,max_object_count)) */ uint32 max_ndr_size; /* w2k3 seems to ignore this */ - uint32 unknown4; - hyper h1; - uint32 unique_ptr1; - uint32 unique_ptr2; + drsuapi_DsExtendedOperation extended_op; + hyper fsmo_info; + drsuapi_DsPartialAttributeSet *partial_attribute_set; + drsuapi_DsPartialAttributeSet *partial_attribute_set_ex; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; } drsuapi_DsGetNCChangesRequest8; @@ -440,10 +478,10 @@ interface drsuapi } drsuapi_DsReplicaCursor2; typedef struct { - uint32 u1; - uint32 u2; + [value(2)] uint32 version; + [value(0)] uint32 reserved1; [range(0,0x100000)] uint32 count; - uint32 u3; + [value(0)] uint32 reserved2; [size_is(count)] drsuapi_DsReplicaCursor2 cursors[]; } drsuapi_DsReplicaCursor2CtrEx; @@ -489,9 +527,15 @@ interface drsuapi [size_is(num_attributes)] drsuapi_DsReplicaAttribute *attributes; } drsuapi_DsReplicaAttributeCtr; + typedef [public] bitmap { + DRSUAPI_DS_REPLICA_OBJECT_FROM_MASTER = 0x00000001, + DRSUAPI_DS_REPLICA_OBJECT_DYNAMIC = 0x00000002, + DRSUAPI_DS_REPLICA_OBJECT_REMOTE_MODIFY = 0x00010000 + } drsuapi_DsReplicaObjectFlags; + typedef [public] struct { drsuapi_DsReplicaObjectIdentifier *identifier; - uint32 unknown1; + drsuapi_DsReplicaObjectFlags flags; drsuapi_DsReplicaAttributeCtr attribute_ctr; } drsuapi_DsReplicaObject; @@ -510,7 +554,7 @@ interface drsuapi typedef [public,noprint] struct { drsuapi_DsReplicaObjectListItemEx *next_object; drsuapi_DsReplicaObject object; - uint32 unknown1; + boolean32 is_nc_prefix; GUID *parent_object_guid; drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; } drsuapi_DsReplicaObjectListItemEx; @@ -523,12 +567,12 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCursorCtrEx *uptodateness_vector; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; - uint32 total_object_count; + drsuapi_DsExtendedError extended_ret; /* w2k sends the nc_object_count value here */ uint32 object_count; /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ [value(ndr_size_drsuapi_DsGetNCChangesCtr1(r,ndr->flags)+55)] uint32 __ndr_size; drsuapi_DsReplicaObjectListItemEx *first_object; - uint32 unknown4; + boolean32 more_data; } drsuapi_DsGetNCChangesCtr1; /* @@ -556,17 +600,17 @@ interface drsuapi drsuapi_DsReplicaHighWaterMark new_highwatermark; drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector; drsuapi_DsReplicaOIDMapping_Ctr mapping_ctr; - uint32 total_object_count; + drsuapi_DsExtendedError extended_ret; uint32 object_count; /* this +55 is sometimes +56, so I don't know where this comes from... --metze */ [value(ndr_size_drsuapi_DsGetNCChangesCtr6(r,ndr->flags)+55)] uint32 __ndr_size; drsuapi_DsReplicaObjectListItemEx *first_object; - uint32 unknown4; - uint32 unknown5; - uint32 unknown6; + boolean32 more_data; + uint32 nc_object_count; /* estimated amount of objects in the whole NC */ + uint32 nc_linked_attributes_count; /* estimated amount of linked values in the whole NC */ [range(0,1048576)] uint32 linked_attributes_count; [size_is(linked_attributes_count)] drsuapi_DsReplicaLinkedAttribute *linked_attributes; - uint32 unknown7; + WERROR drs_error; } drsuapi_DsGetNCChangesCtr6; typedef struct { @@ -589,16 +633,16 @@ interface drsuapi uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), - compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length), - flag(NDR_REMAINING)] DATA_BLOB *decompressed; + compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length)] + drsuapi_DsGetNCChangesCtr1 *ctr1; } drsuapi_DsGetNCChangesXPRESSCtr1; typedef struct { uint32 decompressed_length; uint32 compressed_length; [subcontext(4),subcontext_size(compressed_length), - compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length), - flag(NDR_REMAINING)] DATA_BLOB *decompressed; + compression(NDR_COMPRESSION_XPRESS,compressed_length,decompressed_length)] + drsuapi_DsGetNCChangesCtr6 *ctr6; } drsuapi_DsGetNCChangesXPRESSCtr6; typedef [enum16bit] enum { |