diff options
Diffstat (limited to 'source4/librpc/idl/drsuapi.idl')
-rw-r--r-- | source4/librpc/idl/drsuapi.idl | 55 |
1 files changed, 50 insertions, 5 deletions
diff --git a/source4/librpc/idl/drsuapi.idl b/source4/librpc/idl/drsuapi.idl index 1329332d6b..dbeaa3ccab 100644 --- a/source4/librpc/idl/drsuapi.idl +++ b/source4/librpc/idl/drsuapi.idl @@ -114,7 +114,7 @@ interface drsuapi /*****************/ /* Function 0x02 */ - typedef [gensize,flag(NDR_PAHEX)] struct { + typedef [gensize] struct { [value(ndr_size_drsuapi_DsReplicaObjectIdentifier(r, ndr->flags)-4)] uint32 __ndr_size; [value(ndr_length_dom_sid(&r->sid))] uint32 __ndr_size_sid; GUID guid; @@ -295,12 +295,12 @@ interface drsuapi } drsuapi_DsReplicaObject; typedef [noprint] struct { - drsuapi_DsGetNCChangesInfo1 *next; + drsuapi_DsReplicaObjectListItemEx *next_object; drsuapi_DsReplicaObject object; uint32 unknown1; GUID *guid; drsuapi_DsReplicaMetaDataCtr *meta_data_ctr; - } drsuapi_DsGetNCChangesInfo1; + } drsuapi_DsReplicaObjectListItemEx; typedef struct { GUID guid1; @@ -311,7 +311,7 @@ interface drsuapi drsuapi_DsReplicaCoursorEx05Ctr *coursor_ex; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; uint32 u1[3]; - drsuapi_DsGetNCChangesInfo1 *info1; + drsuapi_DsReplicaObjectListItemEx *first_object; uint32 u2; } drsuapi_DsGetNCChangesCtr1; @@ -630,7 +630,52 @@ interface drsuapi /*****************/ /* Function 0x11 */ - WERROR drsuapi_DsAddEntry(); + typedef [noprint] struct { + drsuapi_DsReplicaObjectListItem *next_object; + drsuapi_DsReplicaObject object; + } drsuapi_DsReplicaObjectListItem; + + typedef struct { + drsuapi_DsReplicaObjectListItem first_object; + } drsuapi_DsAddEntryRequest2; + + typedef [switch_type(int32)] union { + [case(2)] drsuapi_DsAddEntryRequest2 req2; + } drsuapi_DsAddEntryRequest; + + typedef struct { + uint32 unknown1; + uint32 unknown2; + uint32 unknown3; + } drsuapi_DsAddEntryCtr3Info1; + + typedef [switch_type(uint32)] union { + [case(1)] drsuapi_DsAddEntryCtr3Info1 info1; + } drsuapi_DsAddEntryCtr3Info; + + typedef struct { + GUID guid; + [subcontext_size(28),subcontext(0)] dom_sid sid; + } drsuapi_DsReplicaObjectIdentifier2; + + typedef struct { + drsuapi_DsReplicaObjectIdentifier *id; + uint32 level; + [switch_is(level)] drsuapi_DsAddEntryCtr3Info *info; + [range(0,10000)] uint32 count; + [size_is(count)] drsuapi_DsReplicaObjectIdentifier2 *objects[]; + } drsuapi_DsAddEntryCtr3; + + typedef [switch_type(int32)] union { + [case(3)] drsuapi_DsAddEntryCtr3 ctr3; + } drsuapi_DsAddEntryCtr; + + WERROR drsuapi_DsAddEntry( + [in,ref] policy_handle *bind_handle, + [in,out] int32 level, + [in,switch_is(level)] drsuapi_DsAddEntryRequest req, + [out,switch_is(level)] drsuapi_DsAddEntryCtr ctr + ); /*****************/ /* Function 0x12 */ |