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