idl: frsrpc depends on bkupblobs.idl and fscc.idl
[samba.git] / librpc / idl / frsrpc.idl
index cab155295d2d3f5adea34ecf8167f9d84306cf27..bd361a3962c3a8177c3e3cac0ab7a2c93f82722b 100644 (file)
@@ -1,6 +1,8 @@
 #include "idl_types.h"
 
 import "misc.idl";
+import "fscc.idl";
+import "bkupblobs.idl";
 
 [
   uuid("f5cc59b4-4264-101a-8c59-08002b2f8426"),
@@ -12,6 +14,7 @@ import "misc.idl";
 ] 
 interface frsrpc
 {
+
        /*****************/
        /* Function 0x00 */
 
@@ -43,7 +46,6 @@ interface frsrpc
                FRSRPC_CO_FLAG_MORPH_GEN_HEAD   = 0x00400000,
                FRSRPC_CO_FLAG_JUST_OID_RESET   = 0x00800000,
                FRSRPC_CO_FLAG_COMPRESSED_STAGE = 0x01000000,
-               FRSRPC_CO_FLAG_COMPRESSED_STAGE = 0x01000000,
                FRSRPC_CO_FLAG_SKIP_VV_UPDATE   = 0x02000000
        } frsrpc_CommPktCoCmdFlags;
 
@@ -116,7 +118,7 @@ interface frsrpc
                FRSRPC_CO_LOCATION_DIR_NO_CMD   = 0x0000000e | 0x00000001
        } frsrpc_CommPktCoCmdLocationCmd;
 
-       typedef struct {
+       [public] typedef struct {
                uint32 sequence_number;
                frsrpc_CommPktCoCmdFlags flags;
                frsrpc_CommPktCoCmdIFlags iflags;
@@ -203,7 +205,7 @@ interface frsrpc
                frsrpc_CommPktCoRecordExtensionMajor major;
                [value(0x0002)] uint16 offset_count;
                [value(0x00000018)] uint32 offset0;
-               [value(0x00000030)] uint32 offset1;/*TODO: is this correct??? */
+               [value(0x00000030)] uint32 offset1;
                [value(0)] uint32 offset_last;
                [value(0)] uint32 not_used;
                frsrpc_CommPktDataExtensionChecksum data_checksum;
@@ -282,7 +284,7 @@ interface frsrpc
                [case(FRSRPC_COMM_PKT_CHUNK_COMPRESSION_GUID)]
                        GUID compression_guid;
                [case(FRSRPC_COMM_PKT_CHUNK_BLOCK)]
-                       [flag(NDR_REMAINING)] DATA_BLOB block;
+                       DATA_BLOB block;
                [case(FRSRPC_COMM_PKT_CHUNK_BLOCK_SIZE)]
                        hyper block_size;
                [case(FRSRPC_COMM_PKT_CHUNK_FILE_SIZE)]
@@ -294,15 +296,15 @@ interface frsrpc
                [case(FRSRPC_COMM_PKT_CHUNK_CO_GUID)][subcontext(4)]
                        GUID co_guid;
                [case(FRSRPC_COMM_PKT_CHUNK_CO_SEQUENCE_NUMBER)]
-                       uint32 co_sequnence_number;
+                       uint32 co_sequence_number;
                [case(FRSRPC_COMM_PKT_CHUNK_REMOTE_CO)][subcontext(4)]
                        frsrpc_CommPktChangeOrderCommand remote_co;
                [case(FRSRPC_COMM_PKT_CHUNK_CO_EXT_WIN2K)][subcontext(4)]
                        frsrpc_CommPktCoRecordExtensionWin2k co_ext_win2k;
-               [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)][subcontext(4)]
+               [case(FRSRPC_COMM_PKT_CHUNK_CO_EXTENTION_2)]
                        frsrpc_CommPktChangeOrderRecordExtension co_extension2;
                [case(FRSRPC_COMM_PKT_CHUNK_EOP)]
-                       [value(0xFFFFFFFF)] uint32 bop;
+                       [value(0xFFFFFFFF)] uint32 bopend;
        } frsrpc_CommPktChunkData;
 
        typedef [public,flag(NDR_NOALIGN)] struct {
@@ -338,14 +340,14 @@ interface frsrpc
                [value(1)] uint32 cs_id;
                [value(pkt_len+12)] uint32 memory_len;
                [value(ndr_size_frsrpc_CommPktChunkCtr(r->ctr,
-                       ndr->iconv_convenience, ndr->flags))]
+                       ndr->flags))]
                [range(0, 262144)]
                        uint32 pkt_len;
                [value(0)] uint32 upk_len;
                [subcontext(4),subcontext_size(pkt_len)]
                        frsrpc_CommPktChunkCtr *ctr;
-               [value(0)] uint32 data_name;
-               [value(0)] uint32 data_handle;
+               [value(0)] uint3264 data_name;
+               [value(0)] uint3264 data_handle;
        } frsrpc_FrsSendCommPktReq;
 
        WERROR frsrpc_FrsSendCommPkt(
@@ -354,7 +356,15 @@ interface frsrpc
 
        /*****************/
        /* Function 0x01 */
-       [todo] void FRSRPC_VERIFY_PROMOTION_PARENT();
+       /* this function always return WERR_CALL_NOT_IMPLEMENTED */
+       WERROR frsrpc_FrsVerifyPromotionParent(
+               [in,unique,string,charset(UTF16)] uint16 *parent_account,
+               [in,unique,string,charset(UTF16)] uint16 *parent_password,
+               [in,unique,string,charset(UTF16)] uint16 *replica_set_name,
+               [in,unique,string,charset(UTF16)] uint16 *replica_set_type,
+               [in] frsrpc_PartnerAuthLevel partner_auth_level,
+               [in] uint32 __ndr_guid_size
+       );
 
        /*****************/
        /* Function 0x02 */
@@ -381,35 +391,64 @@ interface frsrpc
                        GUID *parent_guid
        );
 
+       typedef [public,flag(NDR_NOALIGN)] struct {
+               uint32 major;
+               uint32 minor;
+               uint32 dataHigh;
+               uint32 dataLow;
+               uint16 compression;
+               uint8 unused[6];
+               fscc_FileNetworkOpenInformation attributes;
+               frsrpc_CommPktChangeOrderCommand command;
+               fscc_FileObjectIdBuffer_2 fileObjId;
+               frsrpc_CommPktCoRecordExtensionWin2k cocExt;
+               GUID compressionGuid;
+               uint32 encDataHigh;
+               uint32 encDataLow;
+               hyper dataSize;
+               uint32 reparseDataPresent;
+               uint32 reparseDataHigh;
+               uint32 reparseDataLow;
+               uint32 padding2;
+       } frsrpc_StageHeader;
+
        /*****************/
        /* Function 0x03 */
-       [todo] void FRSRPC_NOP();
+       WERROR frsrpc_FrsNOP();
+
+       /*
+        *For Op from 4 to 10 Microsoft use
+        *the notation OpnumxxNotUsedOnWire
+        *where xx is the number of the OP.
+        *They are only declared in the IDL of MS-FRS1.pdf.
+        *Not in the core of the document.
+        */
 
        /*****************/
        /* Function 0x04 */
-       [todo] void FRSRPC_BACKUP_COMPLETE();
+       /*[todo] void FRSRPC_BACKUP_COMPLETE();*/
 
        /*****************/
        /* Function 0x05 */
-       [todo] void FRSRPC_BACKUP_COMPLETE_5();
+       /*[todo] void FRSRPC_BACKUP_COMPLETE_5();*/
 
        /*****************/
        /* Function 0x06 */
-       [todo] void FRSRPC_BACKUP_COMPLETE_6();
+       /*[todo] void FRSRPC_BACKUP_COMPLETE_6();*/
 
        /*****************/
        /* Function 0x07 */
-       [todo] void FRSRPC_BACKUP_COMPLETE_7();
+       /*[todo] void FRSRPC_BACKUP_COMPLETE_7();*/
 
        /*****************/
        /* Function 0x08 */
-       [todo] void FRSRPC_BACKUP_COMPLETE_8();
+       /*[todo] void FRSRPC_BACKUP_COMPLETE_8();*/
 
        /*****************/
        /* Function 0x09 */
-       [todo] void FRSRPC_BACKUP_COMPLETE_9();
+       /*[todo] void FRSRPC_BACKUP_COMPLETE_9();*/
 
        /*****************/
        /* Function 0x0a */
-       [todo] void FRSRPC_VERIFY_PROMOTION_PARENT_EX();
+       /*[todo] void FRSRPC_VERIFY_PROMOTION_PARENT_EX();*/
 }