summaryrefslogtreecommitdiff
path: root/source4/librpc/idl
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/idl')
-rw-r--r--source4/librpc/idl/dcerpc.idl17
-rw-r--r--source4/librpc/idl/dcom.idl20
2 files changed, 21 insertions, 16 deletions
diff --git a/source4/librpc/idl/dcerpc.idl b/source4/librpc/idl/dcerpc.idl
index cd87539589..1b8add3e79 100644
--- a/source4/librpc/idl/dcerpc.idl
+++ b/source4/librpc/idl/dcerpc.idl
@@ -37,9 +37,18 @@ interface dcerpc
const uint8 DCERPC_MAX_SIGN_SIZE = 32;
typedef struct {
+ } dcerpc_empty;
+
+ typedef [nodiscriminant] union {
+ [default] dcerpc_empty empty;
+ [case(LIBNDR_FLAG_OBJECT_PRESENT)] GUID object;
+ } dcerpc_object;
+
+ typedef struct {
uint32 alloc_hint;
uint16 context_id;
uint16 opnum;
+ [switch_is(ndr->flags & LIBNDR_FLAG_OBJECT_PRESENT)] dcerpc_object object;
[flag(NDR_ALIGN8)] DATA_BLOB _pad;
[flag(NDR_REMAINING)] DATA_BLOB stub_and_verifier;
} dcerpc_request;
@@ -170,13 +179,6 @@ 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;
@@ -201,7 +203,6 @@ 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 912902a29a..10e63772dd 100644
--- a/source4/librpc/idl/dcom.idl
+++ b/source4/librpc/idl/dcom.idl
@@ -200,7 +200,7 @@ interface ObjectRpcBaseTypes
uint32 cPublicRefs; /* count of references passed */
OXID oxid; /* oxid of server with this oid */
OID oid; /* oid of object with this ipid */
- IPID ipid; /* ipid of Interface */
+ IPID ipid; /* ipid of interface pointer to this object */
} STDOBJREF;
typedef struct
@@ -249,7 +249,7 @@ interface ObjectRpcBaseTypes
typedef [public] struct
{
uint32 size;
- [subcontext(4),align(4)] OBJREF obj;
+ [subcontext(4)] OBJREF obj;
} MInterfacePointer;
}
@@ -501,11 +501,15 @@ uuid(DB7C21F8-FE33-4C11-AEA5-CEB56F076FBB),
]
interface IStream : IUnknown
{
- WERROR IStream_Read([in] uint32 num_requested,
- [out,size_is(*num_read)] uint8 *data,
- [out] uint32 *num_read);
-
- WERROR IStream_Write([in,size_is(num_requested)] uint8 *data,
+ WERROR IStream_Read(
+ [out, size_is(num_requested), length_is(num_read)] uint8 pv[],
+ [in] uint32 num_requested,
+ [in] uint32 *num_readx,
+ [out] uint32 num_read
+ );
+
+ WERROR IStream_Write(
+ [in,size_is(num_requested)] uint8 *data,
[in] uint32 num_requested,
- [out] uint32 *num_written);
+ [out] uint32 num_written);
}