From deafbaed86f2fe530bee5bcded40931ac8f8d9b8 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 29 Dec 2006 07:31:04 +0000 Subject: r20400: this let ndrdump display the content of a frsrpc_FrsSendCommPkt() call between 2 w2k3 boxes nicely, but I'm not sure if the amount of 9 chunks is fixed... metze (This used to be commit adceac88519b5d61b759eac6e0b152da0529f85c) --- source4/librpc/idl/frsrpc.idl | 53 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) diff --git a/source4/librpc/idl/frsrpc.idl b/source4/librpc/idl/frsrpc.idl index 18aa73322a..70b883bbfc 100644 --- a/source4/librpc/idl/frsrpc.idl +++ b/source4/librpc/idl/frsrpc.idl @@ -1,5 +1,7 @@ #include "idl_types.h" +import "misc.idl"; + [ uuid("f5cc59b4-4264-101a-8c59-08002b2f8426"), version(1.1), @@ -11,6 +13,55 @@ interface frsrpc { /*****************/ /* Function 0x00 */ + typedef struct { + uint32 unknown1; + } frsrpc_FrsSendCommPktChunkDataA; + + typedef struct { + uint32 unknown1; + GUID unknown2; + [subcontext(4)] nstring unknown3; + } frsrpc_FrsSendCommPktChunkDataB; + + typedef struct { + uint32 unknown1; + GUID unknown2; + } frsrpc_FrsSendCommPktChunkDataC; + + typedef struct { + NTTIME time; + } frsrpc_FrsSendCommPktChunkDataD; + + typedef [nodiscriminant] union { + [default,flag(NDR_REMAINING)] DATA_BLOB blob; + [case(1)] frsrpc_FrsSendCommPktChunkDataA A; + [case(2)] frsrpc_FrsSendCommPktChunkDataA A; + [case(3)] frsrpc_FrsSendCommPktChunkDataB B; + [case(4)] frsrpc_FrsSendCommPktChunkDataB B; + [case(5)] frsrpc_FrsSendCommPktChunkDataB B; + [case(8)] frsrpc_FrsSendCommPktChunkDataB B; + [case(6)] frsrpc_FrsSendCommPktChunkDataC C; + [case(18)] frsrpc_FrsSendCommPktChunkDataD D; + [case(19)] frsrpc_FrsSendCommPktChunkDataA A; + } frsrpc_FrsSendCommPktChunkData; + + typedef struct { + uint16 type; + [subcontext(4),switch_is(type)] frsrpc_FrsSendCommPktChunkData data; + } frsrpc_FrsSendCommPktChunk; + + typedef [flag(NDR_NOALIGN)] struct { + frsrpc_FrsSendCommPktChunk chunk1; + frsrpc_FrsSendCommPktChunk chunk2; + frsrpc_FrsSendCommPktChunk chunk3; + frsrpc_FrsSendCommPktChunk chunk4; + frsrpc_FrsSendCommPktChunk chunk5; + frsrpc_FrsSendCommPktChunk chunk6; + frsrpc_FrsSendCommPktChunk chunk7; + frsrpc_FrsSendCommPktChunk chunk8; + frsrpc_FrsSendCommPktChunk chunk9; + } frsrpc_FrsSendCommPktChunkCtr; + typedef struct { uint32 unknown1; uint32 unknown2; @@ -36,7 +87,7 @@ interface frsrpc * lstring string; * } ...; */ - [subcontext(4),flag(NDR_REMAINING)/*,size_is(unknown5)*/] DATA_BLOB *unknown7; + [subcontext(4)/*,size_is(unknown5)*/] frsrpc_FrsSendCommPktChunkCtr *chunks; uint32 unknown8; uint32 unknown9; } frsrpc_FrsSendCommPktReq; -- cgit