e85042c27c58193592f3e6e27a391cd0e5ae15bf
[samba.git] / librpc / idl / frsrpc.idl
1 #include "idl_types.h"
2
3 import "misc.idl";
4
5 [
6   uuid("f5cc59b4-4264-101a-8c59-08002b2f8426"),
7   version(1.1),
8   endpoint("ncacn_ip_tcp:", "ncalrpc:"),
9   helpstring("File Replication Service"),
10   helper("../librpc/ndr/ndr_frsrpc.h"),
11   pointer_default(unique)
12
13 interface frsrpc
14 {
15         /*****************/
16         /* Function 0x00 */
17
18         typedef struct {
19                 [subcontext(4)] GUID guid;
20                 [subcontext(4)] nstring name;
21         } frsrpc_CommPktChunkGuidName;
22
23         typedef struct {
24                 hyper vsn;
25                 GUID guid;
26         } frsrpc_CommPktGSVN;
27
28         typedef [bitmap32bit,flag(NDR_PAHEX)] bitmap {
29                 FRSRPC_CO_FLAG_ABORT_CO = 0x00000001,
30                 FRSRPC_CO_FLAG_VV_ACTIVATED     = 0x00000002,
31                 FRSRPC_CO_FLAG_CONTENT_CMD      = 0x00000004,
32                 FRSRPC_CO_FLAG_LOCATION_CMD     = 0x00000008,
33                 FRSRPC_CO_FLAG_ONLIST           = 0x00000010,
34                 FRSRPC_CO_FLAG_LOCALCO          = 0x00000020,
35                 FRSRPC_CO_FLAG_RETRY            = 0x00000040,
36                 FRSRPC_CO_FLAG_OUT_OF_ORDER     = 0x00000200,
37                 FRSRPC_CO_FLAG_NEW_FILE         = 0x00000400,
38                 FRSRPC_CO_FLAG_CONTROL          = 0x00001000,
39                 FRSRPC_CO_FLAG_DIRECTED_CO      = 0x00002000,
40                 FRSRPC_CO_FLAG_VVJOIN_TO_ORIG   = 0x00040000,
41                 FRSRPC_CO_FLAG_SKIP_ORIG_REC_C  = 0x00100000,
42                 FRSRPC_CO_FLAG_MOVEIN_GEN       = 0x00200000,
43                 FRSRPC_CO_FLAG_MORPH_GEN_HEAD   = 0x00400000,
44                 FRSRPC_CO_FLAG_JUST_OID_RESET   = 0x00800000,
45                 FRSRPC_CO_FLAG_COMPRESSED_STAGE = 0x01000000,
46                 FRSRPC_CO_FLAG_COMPRESSED_STAGE = 0x01000000,
47                 FRSRPC_CO_FLAG_SKIP_VV_UPDATE   = 0x02000000
48         } frsrpc_CommPktCoCmdFlags;
49
50         const uint32 FRSRPC_CO_IFLAG_NONE = 0x0000000;
51
52         typedef [bitmap32bit,flag(NDR_PAHEX)] bitmap {
53                 FRSRPC_CO_IFLAG_VVRETIRE_EXEC   = 0x00000001,
54                 FRSRPC_CO_IFLAG_CO_ABORT        = 0x00000002,
55                 FRSRPC_CO_IFLAG_DIR_ENUM_PENDING= 0x00000004
56         } frsrpc_CommPktCoCmdIFlags;
57
58         typedef [v1_enum,flag(NDR_PAHEX)] enum {
59                 FRSRPC_CO_STATUS_CO_ENTERED_LOG                 = 0x00000000,
60                 FRSRPC_CO_STATUS_ALLOC_STAGING_LOCAL_CO         = 0x00000001,
61                 FRSRPC_CO_STATUS_LOCAL_CO_STAGING_STARTED       = 0x00000002,
62                 FRSRPC_CO_STATUS_LOCAL_CO_STAGING_COMPLETED     = 0x00000003,
63                 FRSRPC_CO_STATUS_WAIT_RETRY_LOCAL_CO_STAGING    = 0x00000004,
64                 FRSRPC_CO_STATUS_ALLOC_STAGING_REMOTE_CO        = 0x00000005,
65                 FRSRPC_CO_STATUS_REMOTE_CO_STAGING_STARTED      = 0x00000006,
66                 FRSRPC_CO_STATUS_REMOTE_CO_STAGING_COMPLETED    = 0x00000007,
67                 FRSRPC_CO_STATUS_WAIT_RETRY_REMOTE_CO_STAGING   = 0x00000008,
68                 FRSRPC_CO_STATUS_FILE_INSTALL_REQUESTED         = 0x00000009,
69                 FRSRPC_CO_STATUS_FILE_INSTALL_STARTED           = 0x0000000A,
70                 FRSRPC_CO_STATUS_FILE_INSTALL_COMPLETED         = 0x0000000B,
71                 FRSRPC_CO_STATUS_FILE_INSTALL_WAIT_RETRY        = 0x0000000C,
72                 FRSRPC_CO_STATUS_FILE_INSTALL_RETRYING          = 0x0000000D,
73                 FRSRPC_CO_STATUS_FILE_INSTALL_RENAME_RETRYING   = 0x0000000E,
74                 FRSRPC_CO_STATUS_FILE_INSTALL_DELETE_RETRYING   = 0x0000000F,
75                 FRSRPC_CO_STATUS_CO_RECYCLED_FOR_ENUM           = 0x00000013,
76                 FRSRPC_CO_STATUS_REQUEST_OUTBOUND_PROPAGATION   = 0x00000014,
77                 FRSRPC_CO_STATUS_REQUEST_ACCEPTED_OUTBOUND_LOG  = 0x00000015,
78                 FRSRPC_CO_STATUS_DB_STATE_UPDATE_STARTED        = 0x00000016,
79                 FRSRPC_CO_STATUS_DB_STATE_UPDATE_COMPLETED      = 0x00000017,
80                 FRSRPC_CO_STATUS_CO_ABORTED                     = 0x00000018
81         } frsrpc_CommPktCoCmdStatus;
82
83         typedef [bitmap32bit,flag(NDR_PAHEX)] bitmap {
84                 FRSRPC_CONTENT_REASON_DATA_OVERWRITE            = 0x00000001,
85                 FRSRPC_CONTENT_REASON_DATA_EXTEND               = 0x00000002,
86                 FRSRPC_CONTENT_REASON_DATA_TRUNCATION           = 0x00000004,
87                 FRSRPC_CONTENT_REASON_NAMED_DATA_OVERWRITE      = 0x00000010,
88                 FRSRPC_CONTENT_REASON_NAMED_DATA_EXTEND         = 0x00000020,
89                 FRSRPC_CONTENT_REASON_NAMED_DATA_TRUNCATION     = 0x00000040,
90                 FRSRPC_CONTENT_REASON_FILE_CREATE               = 0x00000100,
91                 FRSRPC_CONTENT_REASON_FILE_DELETE               = 0x00000200,
92                 FRSRPC_CONTENT_REASON_EA_CHANGE                 = 0x00000400,
93                 FRSRPC_CONTENT_REASON_SECURITY_CHANGE           = 0x00000800,
94                 FRSRPC_CONTENT_REASON_OLD_NAME                  = 0x00001000,
95                 FRSRPC_CONTENT_REASON_NEW_NAME                  = 0x00002000,
96                 FRSRPC_CONTENT_REASON_BASIC_INFO_CHANGE         = 0x00004000,
97                 FRSRPC_CONTENT_REASON_COMPRESSION_CHANGE        = 0x00020000
98         } frsrpc_CommPktCoCmdContentCmd;
99
100         typedef [v1_enum,flag(NDR_PAHEX)] enum {
101                 FRSRPC_CO_LOCATION_FILE_CREATE  = 0x00000000,
102                 FRSRPC_CO_LOCATION_DIR_CREATE   = 0x00000000 | 0x00000001,
103                 FRSRPC_CO_LOCATION_FILE_DELETE  = 0x00000002,
104                 FRSRPC_CO_LOCATION_DIR_DELETE   = 0x00000002 | 0x00000001,
105                 FRSRPC_CO_LOCATION_FILE_MOVEIN  = 0x00000004,
106                 FRSRPC_CO_LOCATION_DIR_MOVEIN   = 0x00000004 | 0x00000001,
107                 FRSRPC_CO_LOCATION_FILE_MOVEIN2 = 0x00000006,
108                 FRSRPC_CO_LOCATION_DIR_MOVEIN2  = 0x00000006 | 0x00000001,
109                 FRSRPC_CO_LOCATION_FILE_MOVEOUT = 0x00000008,
110                 FRSRPC_CO_LOCATION_DIR_MOVEOUT  = 0x00000008 | 0x00000001,
111                 FRSRPC_CO_LOCATION_FILE_MOVERS  = 0x0000000a,
112                 FRSRPC_CO_LOCATION_DIR_MOVERS   = 0x0000000a | 0x00000001,
113                 FRSRPC_CO_LOCATION_FILE_MOVEDIR = 0x0000000c,
114                 FRSRPC_CO_LOCATION_DIR_MOVEDIR  = 0x0000000c | 0x00000001,
115                 FRSRPC_CO_LOCATION_FILE_NO_CMD  = 0x0000000e,
116                 FRSRPC_CO_LOCATION_DIR_NO_CMD   = 0x0000000e | 0x00000001
117         } frsrpc_CommPktCoCmdLocationCmd;
118
119         typedef struct {
120                 uint32 sequence_number;
121                 frsrpc_CommPktCoCmdFlags flags;
122                 frsrpc_CommPktCoCmdIFlags iflags;
123                 frsrpc_CommPktCoCmdStatus status;
124                 frsrpc_CommPktCoCmdContentCmd content_cmd;
125                 frsrpc_CommPktCoCmdLocationCmd location_cmd;
126                 uint32 file_attributes;
127                 uint32 file_version_number;
128                 uint32 partern_ack_sequence_number;
129                 [value(0)] uint32 not_used;
130                 hyper file_size;
131                 hyper file_offset;
132                 hyper frs_vsn;
133                 hyper file_usn;
134                 hyper jrnl_usn;
135                 hyper jrnl_first_usn;
136                 uint32 original_replica_num;
137                 uint32 new_replica_num;
138                 GUID change_order_guid;
139                 GUID originator_guid;
140                 GUID file_guid;
141                 GUID old_parent_guid;
142                 GUID new_parent_guid;
143                 GUID connection_guid;
144                 hyper ack_version;
145                 [value(0)] hyper spare2ul1;
146                 [value(0)] hyper spare1guid_p1;
147                 [value(0)] hyper spare1guid_p2;
148                 [value(0)] hyper spare2guid_p1;
149                 [value(0)] hyper spare3guid_p2;
150                 [value(0)] uint32 spare1wcs;
151                 [value(0)] uint32 spare2wcs;
152                 [value(0)] uint32 extension;
153                 [value(0)] uint32 spare2bin;
154                 NTTIME event_time;
155                 [value(2*strlen_m(file_name))] uint16 file_name_length;
156 #define FRSRPC_MAX_PATH 260
157                 [charset(UTF16)] uint16 file_name[FRSRPC_MAX_PATH+1];
158                 [value(0)] uint8 padding1;
159                 [value(0)] uint8 padding2;
160                 [value(0)] uint8 padding3;
161                 [value(0)] uint8 padding4;
162         } frsrpc_CommPktChangeOrderCommand;
163
164         typedef [v1_enum,flag(NDR_PAHEX)] enum {
165                 FRSRPC_DATA_EXTENSION_TERMINATOR        = 0x00000000,
166                 FRSRPC_DATA_EXTENSION_MD5_CHECKSUM      = 0x00000001,
167                 FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT     = 0x00000002
168         } frsrpc_CommPktDataExtensionType;
169
170         typedef [flag(NDR_PAHEX)] struct {
171                 [value(0x00000018)] uint32 prefix_size;
172                 [value(FRSRPC_DATA_EXTENSION_MD5_CHECKSUM)]
173                         frsrpc_CommPktDataExtensionType prefix_type;
174                 uint8 data[16];
175         } frsrpc_CommPktDataExtensionChecksum;
176
177         typedef struct {
178                 [value(0x00000018)] uint32 prefix_size;
179                 [value(FRSRPC_DATA_EXTENSION_RETRY_TIMEOUT)]
180                         frsrpc_CommPktDataExtensionType prefix_type;
181                 uint32 count;
182                 [value(0)] uint32 not_used;
183                 NTTIME first_try_time;
184         } frsrpc_CommPktDataExtensionRetryTimeout;
185
186         typedef [flag(NDR_PAHEX)] enum {
187                 FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K        = 0x0000,
188                 FRSRPC_CO_RECORD_EXTENSION_VERSION_1            = 0x0001
189         } frsrpc_CommPktCoRecordExtensionMajor;
190
191         typedef struct {
192                 [value(0x00000028)] uint32 field_size;
193                 [value(FRSRPC_CO_RECORD_EXTENSION_VERSION_WIN2K)]
194                         frsrpc_CommPktCoRecordExtensionMajor major;
195                 [value(0x0001)] uint16 offset_count;
196                 [value(0x00000010)] uint32 offset;
197                 [value(0)] uint32 offset_last;
198                 frsrpc_CommPktDataExtensionChecksum data_checksum;
199         } frsrpc_CommPktCoRecordExtensionWin2k;
200
201         typedef struct {
202                 [value(0x00000048)] uint32 field_size;
203                 frsrpc_CommPktCoRecordExtensionMajor major;
204                 [value(0x0002)] uint16 offset_count;
205                 [value(0x00000018)] uint32 offset0;
206                 [value(0x00000030)] uint32 offset1;/*TODO: is this correct??? */
207                 [value(0)] uint32 offset_last;
208                 [value(0)] uint32 not_used;
209                 frsrpc_CommPktDataExtensionChecksum data_checksum;
210                 frsrpc_CommPktDataExtensionRetryTimeout data_retry_timeout;
211         } frsrpc_CommPktChangeOrderRecordExtension;
212
213         typedef [v1_enum,flag(NDR_PAHEX)] enum {
214                 FRSRPC_COMMAND_REMOTE_CO                = 0x00000218,
215                 FRSRPC_COMMAND_RECEIVING_STATE          = 0x00000238,
216                 FRSRPC_COMMAND_REMOTE_CO_DONE           = 0x00000250,
217                 FRSRPC_COMMAND_ABORT_FETCH              = 0x00000246,
218                 FRSRPC_COMMAND_RETRY_FETCH              = 0x00000244,
219                 FRSRPC_COMMAND_NEED_JOIN                = 0x00000121,
220                 FRSRPC_COMMAND_START_JOIN               = 0x00000122,
221                 FRSRPC_COMMAND_JOINING                  = 0x00000130,
222                 FRSRPC_COMMAND_JOINED                   = 0x00000128,
223                 FRSRPC_COMMAND_UNJOIN_REMOTE            = 0x00000148,
224                 FRSRPC_COMMAND_WJOIN_DONE               = 0x00000136,
225                 FRSRPC_COMMAND_SEND_STAGE               = 0x00000228
226         } frsrpc_CommPktCommand;
227
228         typedef [flag(NDR_PAHEX)] enum {
229                 FRSRPC_COMM_PKT_CHUNK_BOP                       = 0x0001,
230                 FRSRPC_COMM_PKT_CHUNK_COMMAND                   = 0x0002,
231                 FRSRPC_COMM_PKT_CHUNK_TO                        = 0x0003,
232                 FRSRPC_COMM_PKT_CHUNK_FROM                      = 0x0004,
233                 FRSRPC_COMM_PKT_CHUNK_REPLICA                   = 0x0005,
234                 FRSRPC_COMM_PKT_CHUNK_CONNECTION                = 0x0008,
235                 FRSRPC_COMM_PKT_CHUNK_JOIN_GUID                 = 0x0006,
236                 FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME            = 0x0012,
237
238                 FRSRPC_COMM_PKT_CHUNK_VVECTOR                   = 0x0007,
239                 FRSRPC_COMM_PKT_CHUNK_JOIN_TIME                 = 0x0011,
240                 FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID      = 0x0014,
241                 FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID          = 0x0018,
242
243                 FRSRPC_COMM_PKT_CHUNK_BLOCK                     = 0x0009,
244                 FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE                = 0x000A,
245                 FRSRPC_COMM_PKT_CHUNK_FILE_SIZE                 = 0x000B,
246                 FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET               = 0x000C,
247                 FRSRPC_COMM_PKT_CHUNK_GVSN                      = 0x000E,
248                 FRSRPC_COMM_PKT_CHUNK_CO_GUID                   = 0x000F,
249                 FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER        = 0x0010,
250
251                 FRSRPC_COMM_PKT_CHUNK_REMOTE_CO                 = 0x000D,
252                 FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K              = 0x0016,
253                 FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2            = 0x0017,
254
255                 FRSRPC_COMM_PKT_CHUNK_EOP                       = 0x0013
256         } frsrpc_CommPktChunkType;
257
258         typedef [nodiscriminant] union {
259                 [default,flag(NDR_REMAINING)] DATA_BLOB blob;
260                 [case(FRSRPC_COMM_PKT_CHUNK_BOP)]
261                         [value(0)] uint32 bop;
262                 [case(FRSRPC_COMM_PKT_CHUNK_COMMAND)]
263                         frsrpc_CommPktCommand command;
264                 [case(FRSRPC_COMM_PKT_CHUNK_TO)]
265                         frsrpc_CommPktChunkGuidName to;
266                 [case(FRSRPC_COMM_PKT_CHUNK_FROM)]
267                         frsrpc_CommPktChunkGuidName from;
268                 [case(FRSRPC_COMM_PKT_CHUNK_REPLICA)]
269                         frsrpc_CommPktChunkGuidName replica;
270                 [case(FRSRPC_COMM_PKT_CHUNK_CONNECTION)]
271                         frsrpc_CommPktChunkGuidName connection;
272                 [case(FRSRPC_COMM_PKT_CHUNK_JOIN_GUID)][subcontext(4)]
273                         GUID join_guid;
274                 [case(FRSRPC_COMM_PKT_CHUNK_LAST_JOIN_TIME)]
275                         NTTIME last_join_time;
276                 [case(FRSRPC_COMM_PKT_CHUNK_VVECTOR)][subcontext(4)]
277                         frsrpc_CommPktGSVN vvector;
278                 [case(FRSRPC_COMM_PKT_CHUNK_JOIN_TIME)][subcontext(4)]
279                         NTTIME join_time;
280                 [case(FRSRPC_COMM_PKT_CHUNK_REPLICA_VERSION_GUID)][subcontext(4)]
281                         GUID replica_version_guid;
282                 [case(FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID)]
283                         GUID compression_guid;
284                 [case(FRSRPC_COMM_PKT_CHUNK_BLOCK)]
285                         [flag(NDR_REMAINING)] DATA_BLOB block;
286                 [case(FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE)]
287                         hyper block_size;
288                 [case(FRSRPC_COMM_PKT_CHUNK_FILE_SIZE)]
289                         hyper file_size;
290                 [case(FRSRPC_COMM_PKT_CHUNK_FILE_OFFSET)]
291                         hyper file_offset;
292                 [case(FRSRPC_COMM_PKT_CHUNK_GVSN)][subcontext(4)]
293                         frsrpc_CommPktGSVN gvsn;
294                 [case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)][subcontext(4)]
295                         GUID co_guid;
296                 [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)]
297                         uint32 co_sequnence_number;
298                 [case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)][subcontext(4)]
299                         frsrpc_CommPktChangeOrderCommand remote_co;
300                 [case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)][subcontext(4)]
301                         frsrpc_CommPktCoRecordExtensionWin2k co_ext_win2k;
302                 [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)][subcontext(4)]
303                         frsrpc_CommPktChangeOrderRecordExtension co_extension2;
304                 [case(FRSRPC_COMM_PKT_CHUNK_EOP)]
305                         [value(0xFFFFFFFF)] uint32 bop;
306         } frsrpc_CommPktChunkData;
307
308         typedef [public,flag(NDR_NOALIGN)] struct {
309                 frsrpc_CommPktChunkType type;
310                 [subcontext(4),switch_is(type)] frsrpc_CommPktChunkData data;
311         } frsrpc_CommPktChunk;
312
313         typedef [nopull,nopush,flag(NDR_NOALIGN)] struct {
314                 uint32 num_chunks; /* this doesn't appear on the wire */
315                 frsrpc_CommPktChunk chunks[num_chunks];
316         } frsrpc_CommPktChunkCtr;
317
318         typedef [v1_enum] enum {
319                 FRSRPC_COMM_PKT_MAJOR_0 = 0x00000000
320         } frsrpc_CommPktMajor;
321
322         typedef [v1_enum] enum {
323                 FRSRPC_COMM_PKT_MINOR_0 = 0x00000000,
324                 FRSRPC_COMM_PKT_MINOR_1 = 0x00000001,
325                 FRSRPC_COMM_PKT_MINOR_2 = 0x00000002,
326                 FRSRPC_COMM_PKT_MINOR_3 = 0x00000003,
327                 FRSRPC_COMM_PKT_MINOR_4 = 0x00000004,
328                 FRSRPC_COMM_PKT_MINOR_5 = 0x00000005,
329                 FRSRPC_COMM_PKT_MINOR_6 = 0x00000006,
330                 FRSRPC_COMM_PKT_MINOR_7 = 0x00000007,
331                 FRSRPC_COMM_PKT_MINOR_8 = 0x00000008,
332                 FRSRPC_COMM_PKT_MINOR_9 = 0x00000009
333         } frsrpc_CommPktMinor;
334
335         typedef struct {
336                 frsrpc_CommPktMajor major;
337                 frsrpc_CommPktMinor minor;
338                 [value(1)] uint32 cs_id;
339                 [value(pkt_len+12)] uint32 memory_len;
340                 [value(ndr_size_frsrpc_CommPktChunkCtr(r->ctr,
341                         ndr->flags))]
342                 [range(0, 262144)]
343                         uint32 pkt_len;
344                 [value(0)] uint32 upk_len;
345                 [subcontext(4),subcontext_size(pkt_len)]
346                         frsrpc_CommPktChunkCtr *ctr;
347                 [value(0)] uint32 data_name;
348                 [value(0)] uint32 data_handle;
349         } frsrpc_FrsSendCommPktReq;
350
351         WERROR frsrpc_FrsSendCommPkt(
352                 [in]    frsrpc_FrsSendCommPktReq req
353         );
354
355         /*****************/
356         /* Function 0x01 */
357         /* this function always return WERR_CALL_NOT_IMPLEMENTED */
358         WERROR frsrpc_FrsVerifyPromotionParent(
359                 [in,unique,string,charset(UTF16)] uint16 *parent_account,
360                 [in,unique,string,charset(UTF16)] uint16 *parent_password,
361                 [in,unique,string,charset(UTF16)] uint16 *replica_set_name,
362                 [in,unique,string,charset(UTF16)] uint16 *replica_set_type,
363                 [in] frsrpc_PartnerAuthLevel partner_auth_level,
364                 [in] uint32 __ndr_guid_size
365         );
366
367         /*****************/
368         /* Function 0x02 */
369         typedef [v1_enum,flag(NDR_PAHEX)] enum {
370                 FRSRPC_PARENT_AUTH_LEVEL_ENCRYPTED_KERBEROS     = 0x00000000,
371                 FRSRPC_PARENT_AUTH_LEVEL_NO_AUTHENTICATION      = 0x00000001
372         } frsrpc_PartnerAuthLevel;
373
374         WERROR frsrpc_FrsStartPromotionParent(
375                 [in,unique,string,charset(UTF16)] uint16 *parent_account,
376                 [in,unique,string,charset(UTF16)] uint16 *parent_password,
377                 [in,unique,string,charset(UTF16)] uint16 *replica_set_name,
378                 [in,unique,string,charset(UTF16)] uint16 *replica_set_type,
379                 [in,unique,string,charset(UTF16)] uint16 *connection_name,
380                 [in,unique,string,charset(UTF16)] uint16 *partner_name,
381                 [in,unique,string,charset(UTF16)] uint16 *partner_princ_name,
382                 [in] frsrpc_PartnerAuthLevel partner_auth_level,
383                 [in,value(16),range(16,16)] uint32 __ndr_guid_size,
384                 [in,unique,subcontext(4),subcontext_size(16)]
385                         GUID *connection_guid,
386                 [in,unique,subcontext(4),subcontext_size(16)]
387                         GUID *partner_guid,
388                 [in,out,unique,subcontext(4),subcontext_size(16)]
389                         GUID *parent_guid
390         );
391
392         /*****************/
393         /* Function 0x03 */
394         WERROR frsrpc_FrsNOP();
395
396         /*****************/
397         /* Function 0x04 */
398         [todo] void FRSRPC_BACKUP_COMPLETE();
399
400         /*****************/
401         /* Function 0x05 */
402         [todo] void FRSRPC_BACKUP_COMPLETE_5();
403
404         /*****************/
405         /* Function 0x06 */
406         [todo] void FRSRPC_BACKUP_COMPLETE_6();
407
408         /*****************/
409         /* Function 0x07 */
410         [todo] void FRSRPC_BACKUP_COMPLETE_7();
411
412         /*****************/
413         /* Function 0x08 */
414         [todo] void FRSRPC_BACKUP_COMPLETE_8();
415
416         /*****************/
417         /* Function 0x09 */
418         [todo] void FRSRPC_BACKUP_COMPLETE_9();
419
420         /*****************/
421         /* Function 0x0a */
422         [todo] void FRSRPC_VERIFY_PROMOTION_PARENT_EX();
423 }