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 | }
|
---|