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