From 6d3c74a67b935f348777feb3fac7653a9c4277a8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 3 Nov 2004 20:32:28 +0000 Subject: r3513: Add (the infrastructure for) DCOM support. Contents: - Support for sending over the object UUID in DCERPC calls - Simple torture test for the DCOM "Simple" object - Generate extra argument for "object" interfaces in pidl - Some stubs for common DCOM functions (This used to be commit c052f2e1edd816206d8974af3140cec7ef97a70c) --- source4/librpc/idl/dcerpc.idl | 9 ++++++++- source4/librpc/idl/dcom.idl | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'source4/librpc/idl') diff --git a/source4/librpc/idl/dcerpc.idl b/source4/librpc/idl/dcerpc.idl index e879fb905e..758cf45616 100644 --- a/source4/librpc/idl/dcerpc.idl +++ b/source4/librpc/idl/dcerpc.idl @@ -169,6 +169,13 @@ interface dcerpc [case(DCERPC_PKT_BIND_NAK)] dcerpc_bind_nak bind_nak; } dcerpc_payload; + typedef struct { + } dcerpc_empty; + + typedef [nodiscriminant] union { + [default] dcerpc_empty empty; + [case(DCERPC_PFC_FLAG_ORPC)] GUID object; + } dcerpc_object; /* pfc_flags values */ const uint8 DCERPC_PFC_FLAG_FIRST = 0x01; @@ -193,7 +200,7 @@ interface dcerpc uint16 frag_length; /* Total length of fragment */ uint16 auth_length; /* authenticator length */ uint32 call_id; /* Call identifier */ - + [switch_is(pfc_flags & DCERPC_PFC_FLAG_ORPC)] dcerpc_object object; [switch_is(ptype)] dcerpc_payload u; } dcerpc_packet; } diff --git a/source4/librpc/idl/dcom.idl b/source4/librpc/idl/dcom.idl index 454faa0d6b..d0fae2f0cc 100644 --- a/source4/librpc/idl/dcom.idl +++ b/source4/librpc/idl/dcom.idl @@ -513,11 +513,11 @@ uuid(DB7C21F8-FE33-4C11-AEA5-CEB56F076FBB), ] interface IStream : IUnknown { - WERROR Read([in] uint32 num_requested, + WERROR IStream_Read([in] uint32 num_requested, [out,size_is(*num_read)] uint8 *data, [out] uint32 *num_read); - WERROR Write([in,size_is(num_requested)] uint8 *data, + WERROR IStream_Write([in,size_is(num_requested)] uint8 *data, [in] uint32 num_requested, [out] uint32 *num_written); } -- cgit