Author: metze Date: 2005-03-16 09:25:52 +0000 (Wed, 16 Mar 2005) New Revision: 5828
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5828 Log: add some idl for DsAddEntry() metze Modified: branches/SAMBA_4_0/source/include/structs.h branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c Changeset: Modified: branches/SAMBA_4_0/source/include/structs.h =================================================================== --- branches/SAMBA_4_0/source/include/structs.h 2005-03-16 06:18:20 UTC (rev 5827) +++ branches/SAMBA_4_0/source/include/structs.h 2005-03-16 09:25:52 UTC (rev 5828) @@ -29,7 +29,8 @@ struct spoolss_EnumPrinterDrivers; struct spoolss_EnumPorts; -struct drsuapi_DsGetNCChangesInfo1; +struct drsuapi_DsReplicaObjectListItem; +struct drsuapi_DsReplicaObjectListItemEx; struct MULTI_QI; struct COSERVERINFO; Modified: branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl =================================================================== --- branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2005-03-16 06:18:20 UTC (rev 5827) +++ branches/SAMBA_4_0/source/librpc/idl/drsuapi.idl 2005-03-16 09:25:52 UTC (rev 5828) @@ -114,7 +114,7 @@ /*****************/ /* 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 @@ } 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 @@ drsuapi_DsReplicaCoursorEx05Ctr *coursor_ex; drsuapi_DsGetNCChangesRequest_Ctr12 ctr12; uint32 u1[3]; - drsuapi_DsGetNCChangesInfo1 *info1; + drsuapi_DsReplicaObjectListItemEx *first_object; uint32 u2; } drsuapi_DsGetNCChangesCtr1; @@ -630,8 +630,53 @@ /*****************/ /* 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 */ WERROR DRSUAPI_EXECUTE_KCC(); Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c =================================================================== --- branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c 2005-03-16 06:18:20 UTC (rev 5827) +++ branches/SAMBA_4_0/source/librpc/ndr/ndr_drsuapi.c 2005-03-16 09:25:52 UTC (rev 5828) @@ -24,12 +24,23 @@ #include "includes.h" #include "librpc/gen_ndr/ndr_drsuapi.h" +void ndr_print_drsuapi_DsReplicaObjectListItem(struct ndr_print *ndr, const char *name, struct drsuapi_DsReplicaObjectListItem *r) +{ + ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectListItem"); + ndr->depth++; + ndr_print_ptr(ndr, "next_object", r->next_object); + ndr_print_drsuapi_DsReplicaObject(ndr, "object", &r->object); + ndr->depth--; + if (r->next_object) { + ndr_print_drsuapi_DsReplicaObjectListItem(ndr, "next_object", r->next_object); + } +} -void ndr_print_drsuapi_DsGetNCChangesInfo1(struct ndr_print *ndr, const char *name, struct drsuapi_DsGetNCChangesInfo1 *r) +void ndr_print_drsuapi_DsReplicaObjectListItemEx(struct ndr_print *ndr, const char *name, struct drsuapi_DsReplicaObjectListItemEx *r) { - ndr_print_struct(ndr, name, "drsuapi_DsGetNCChangesInfo1"); + ndr_print_struct(ndr, name, "drsuapi_DsReplicaObjectListItemEx"); ndr->depth++; - ndr_print_ptr(ndr, "next", r->next); + ndr_print_ptr(ndr, "next_object", r->next_object); ndr_print_drsuapi_DsReplicaObject(ndr, "object", &r->object); ndr_print_uint32(ndr, "unknown1", r->unknown1); ndr_print_ptr(ndr, "guid", r->guid); @@ -45,7 +56,7 @@ } ndr->depth--; ndr->depth--; - if (r->next) { - ndr_print_drsuapi_DsGetNCChangesInfo1(ndr, "next", r->next); + if (r->next_object) { + ndr_print_drsuapi_DsReplicaObjectListItemEx(ndr, "next_object", r->next_object); } }