Fix bug #6330 - DFS doesn't work on AIX. Jeremy.
[Samba.git] / librpc / idl / frsrpc.idl
blob1019a25b28a9c2bc649b5b7f7e18234d2d16b062
1 #include "idl_types.h"
3 import "misc.idl";
6 uuid("f5cc59b4-4264-101a-8c59-08002b2f8426"),
7 version(1.1),
8 endpoint("ncacn_ip_tcp:", "ncalrpc:"),
9 helpstring("File Replication Service"),
10 pointer_default(unique)
12 interface frsrpc
14 /*****************/
15 /* Function 0x00 */
17 /* TAG:3 this TLV contains a GUID and the name of the server sending
18 * the call
20 typedef struct {
21 [subcontext(4)] GUID unknown1;
22 [subcontext(4)] nstring source_server;
23 } frsrpc_FrsSendCommPktChunkDataSSRV;
25 /* TAG:4 this TLV contains a GUID and the name of the destination
26 * server the PDU is sent to
28 typedef struct {
29 [subcontext(4)] GUID unknown1;
30 [subcontext(4)] nstring dest_server;
31 } frsrpc_FrsSendCommPktChunkDataDSRV;
33 /* TAG:18 this TLV contains a timestamp
35 typedef struct {
36 [subcontext(4)] NTTIME time;
37 } frsrpc_FrsSendCommPktChunkDataTS;
40 typedef struct {
41 uint32 unknown1;
42 } frsrpc_FrsSendCommPktChunkDataA;
44 typedef struct {
45 uint32 unknown1;
46 GUID unknown2;
47 [subcontext(4)] nstring unknown3;
48 } frsrpc_FrsSendCommPktChunkDataB;
50 typedef struct {
51 uint32 unknown1;
52 GUID unknown2;
53 } frsrpc_FrsSendCommPktChunkDataC;
55 typedef [nodiscriminant] union {
56 [default,flag(NDR_REMAINING)] DATA_BLOB blob;
57 [case(1)] frsrpc_FrsSendCommPktChunkDataA A;
58 [case(2)] frsrpc_FrsSendCommPktChunkDataA A;
59 [case(3)] frsrpc_FrsSendCommPktChunkDataSSRV SSRV;
60 [case(4)] frsrpc_FrsSendCommPktChunkDataDSRV DSRV;
61 [case(5)] frsrpc_FrsSendCommPktChunkDataB B;
62 [case(8)] frsrpc_FrsSendCommPktChunkDataB B;
63 [case(6)] frsrpc_FrsSendCommPktChunkDataC C;
64 [case(18)] frsrpc_FrsSendCommPktChunkDataTS TS;
65 [case(19)] frsrpc_FrsSendCommPktChunkDataA A;
66 } frsrpc_FrsSendCommPktChunkData;
68 typedef struct {
69 uint16 type;
70 [subcontext(4),switch_is(type)] frsrpc_FrsSendCommPktChunkData data;
71 } frsrpc_FrsSendCommPktChunk;
73 typedef [flag(NDR_NOALIGN)] struct {
74 frsrpc_FrsSendCommPktChunk chunk1;
75 frsrpc_FrsSendCommPktChunk chunk2;
76 frsrpc_FrsSendCommPktChunk chunk3;
77 frsrpc_FrsSendCommPktChunk chunk4;
78 frsrpc_FrsSendCommPktChunk chunk5;
79 frsrpc_FrsSendCommPktChunk chunk6;
80 frsrpc_FrsSendCommPktChunk chunk7;
81 frsrpc_FrsSendCommPktChunk chunk8;
82 frsrpc_FrsSendCommPktChunk chunk9;
83 } frsrpc_FrsSendCommPktChunkCtr;
85 typedef struct {
86 uint32 unknown1;
87 uint32 unknown2;
88 uint32 unknown3;
89 uint32 unknown4;
90 uint32 tlv_size;
91 uint32 unknown6;
92 uint32 unknown7; /* This may be a UNIQUE pointer? */
93 uint32 unknown8;
94 uint32 unknown9;
96 * The format of this blob is this a concatenation
97 * of TLVs which are not really NDR encoded.
99 * The individual TLVs are encoded as :
100 * struct {
101 * uint16 type;
102 * [subcontext(4),switch_is(type)] chunk_data data;
103 * } chunk;
105 * some of the chunk are like this:
107 * struct {
108 * uint32 unknown; // 0x00000010
109 * struct GUID guid;
110 * lstring string;
111 * } ...;
114 * The tags are (might be) :
115 * 3: Source server sending the PDU
116 * 4: Destination server the PDU is sent to
117 * 18: Timestamp
120 [subcontext(4)/*,size_is(tlv_size)*/] frsrpc_FrsSendCommPktChunkCtr *chunks;
121 uint32 unknown10;
122 uint32 unknown11;
123 } frsrpc_FrsSendCommPktReq;
125 WERROR frsrpc_FrsSendCommPkt(
126 [in] frsrpc_FrsSendCommPktReq req
129 /*****************/
130 /* Function 0x01 */
131 [todo] void FRSRPC_VERIFY_PROMOTION_PARENT();
133 /*****************/
134 /* Function 0x02 */
135 [todo] void FRSRPC_START_PROMOTION_PARENT();
137 /*****************/
138 /* Function 0x03 */
139 [todo] void FRSRPC_NOP();
141 /*****************/
142 /* Function 0x04 */
143 [todo] void FRSRPC_BACKUP_COMPLETE();
145 /*****************/
146 /* Function 0x05 */
147 [todo] void FRSRPC_BACKUP_COMPLETE_5();
149 /*****************/
150 /* Function 0x06 */
151 [todo] void FRSRPC_BACKUP_COMPLETE_6();
153 /*****************/
154 /* Function 0x07 */
155 [todo] void FRSRPC_BACKUP_COMPLETE_7();
157 /*****************/
158 /* Function 0x08 */
159 [todo] void FRSRPC_BACKUP_COMPLETE_8();
161 /*****************/
162 /* Function 0x09 */
163 [todo] void FRSRPC_BACKUP_COMPLETE_9();
165 /*****************/
166 /* Function 0x0a */
167 [todo] void FRSRPC_VERIFY_PROMOTION_PARENT_EX();