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