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