diff options
Diffstat (limited to 'source3/librpc/idl')
-rw-r--r-- | source3/librpc/idl/dfs.idl | 255 |
1 files changed, 208 insertions, 47 deletions
diff --git a/source3/librpc/idl/dfs.idl b/source3/librpc/idl/dfs.idl index 82f3929211..2b519b15d5 100644 --- a/source3/librpc/idl/dfs.idl +++ b/source3/librpc/idl/dfs.idl @@ -10,35 +10,37 @@ { /******************/ /* Function: 0x00 */ - void dfs_GetManagerVersion( - [out] uint32 *exist_flag + typedef [v1_enum] enum { + DFS_MANAGER_VERSION_NT4 = 1, + DFS_MANAGER_VERSION_W2K = 2, + DFS_MANAGER_VERSION_W2K3 = 4 + } dfs_ManagerVersion; + + [public] void dfs_GetManagerVersion( + [out] dfs_ManagerVersion *version ); /******************/ /* Function: 0x01 */ WERROR dfs_Add ( - [in,string,charset(UTF16)] uint16 *path, - [in,string,charset(UTF16)] uint16 *server, - [in,unique,string,charset(UTF16)] uint16 *share, - [in,unique,string,charset(UTF16)] uint16 *comment, - [in] uint32 flags + [in] [string,charset(UTF16)] uint16 *path, + [in] [string,charset(UTF16)] uint16 *server, + [in,unique] [string,charset(UTF16)] uint16 *share, + [in,unique] [string,charset(UTF16)] uint16 *comment, + [in] uint32 flags ); /******************/ /* Function: 0x02 */ WERROR dfs_Remove ( - [in,string,charset(UTF16)] uint16 *path, - [in,unique,string,charset(UTF16)] uint16 *server, - [in,unique,string,charset(UTF16)] uint16 *share + [in] [string,charset(UTF16)] uint16 *dfs_entry_path, + [in,unique] [string,charset(UTF16)] uint16 *servername, + [in,unique] [string,charset(UTF16)] uint16 *sharename ); /******************/ /* Function: 0x03 */ - WERROR dfs_SetInfo (); - - /******************/ - /* Function: 0x04 */ typedef struct { } dfs_Info0; @@ -47,15 +49,34 @@ [string,charset(UTF16)] uint16 *path; } dfs_Info1; + /* first 4 bits unverified yet */ + typedef [public,bitmap32bit] bitmap { + DFS_VOLUME_STATE_OK = 0x1, + DFS_VOLUME_STATE_INCONSISTENT = 0x2, + DFS_VOLUME_STATE_OFFLINE = 0x4, + DFS_VOLUME_STATE_ONLINE = 0x8, + DFS_VOLUME_STATE_STANDALONE = DFS_VOLUME_FLAVOR_STANDALONE, + DFS_VOLUME_STATE_AD_BLOB = DFS_VOLUME_FLAVOR_AD_BLOB + } dfs_VolumeState; + typedef struct { [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *comment; - uint32 state; + dfs_VolumeState state; uint32 num_stores; } dfs_Info2; + const int DFS_STORAGE_STATES = 0xf; + + /* yes, this is a bitmap */ + typedef [public,bitmap32bit] bitmap { + DFS_STORAGE_STATE_OFFLINE = 1, + DFS_STORAGE_STATE_ONLINE = 2, + DFS_STORAGE_STATE_ACTIVE = 4 + } dfs_StorageState; + typedef struct { - uint32 state; + dfs_StorageState state; [string,charset(UTF16)] uint16 *server; [string,charset(UTF16)] uint16 *share; } dfs_StorageInfo; @@ -63,7 +84,7 @@ typedef struct { [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *comment; - uint32 state; + dfs_VolumeState state; uint32 num_stores; [size_is(num_stores)] dfs_StorageInfo *stores; } dfs_Info3; @@ -71,19 +92,75 @@ typedef struct { [string,charset(UTF16)] uint16 *path; [string,charset(UTF16)] uint16 *comment; - uint32 state; + dfs_VolumeState state; uint32 timeout; GUID guid; uint32 num_stores; [size_is(num_stores)] dfs_StorageInfo *stores; } dfs_Info4; + /* verified with dfsutil */ + typedef [public,bitmap32bit] bitmap { + DFS_PROPERTY_FLAG_INSITE_REFERRALS = 0x01, + DFS_PROPERTY_FLAG_ROOT_SCALABILITY = 0x02, + DFS_PROPERTY_FLAG_SITE_COSTING = 0x04, + DFS_PROPERTY_FLAG_TARGET_FAILBACK = 0x08, + DFS_PROPERTY_FLAG_CLUSTER_ENABLED = 0x10 /* untested */ + } dfs_PropertyFlags; + + typedef struct { + [string,charset(UTF16)] uint16 *path; + [string,charset(UTF16)] uint16 *comment; + dfs_VolumeState state; + uint32 timeout; + GUID guid; + dfs_PropertyFlags flags; + uint32 pktsize; + uint32 num_stores; + } dfs_Info5; + + typedef [v1_enum] enum { + DFS_INVALID_PRIORITY_CLASS = -1, + DFS_SITE_COST_NORMAL_PRIORITY_CLASS = 0, + DFS_GLOBAL_HIGH_PRIORITY_CLASS = 1, + DFS_SITE_COST_HIGH_PRIORITY_CLASS = 2, + DFS_SITE_COST_LOW_PRIORITY_CLASS = 3, + DFS_GLOBAL_LOW_PRIORITY_CLASS = 4 + } dfs_Target_PriorityClass; + + typedef struct { + dfs_Target_PriorityClass target_priority_class; + uint16 target_priority_rank; + uint16 reserved; + } dfs_Target_Priority; + + typedef struct { + dfs_StorageInfo info; + dfs_Target_Priority target_priority; + } dfs_StorageInfo2; + + typedef struct { + [string,charset(UTF16)] uint16 *entry_path; + [string,charset(UTF16)] uint16 *comment; + dfs_VolumeState state; + uint32 timeout; + GUID guid; + dfs_PropertyFlags flags; + uint32 pktsize; + uint16 num_stores; + [size_is(num_stores)] dfs_StorageInfo2 *stores; + } dfs_Info6; + + typedef struct { + GUID generation_guid; + } dfs_Info7; + typedef struct { [string,charset(UTF16)] uint16 *comment; } dfs_Info100; typedef struct { - uint32 state; + dfs_StorageState state; } dfs_Info101; typedef struct { @@ -91,30 +168,73 @@ } dfs_Info102; typedef struct { + dfs_PropertyFlags flags; + } dfs_Info103; + + typedef struct { + dfs_Target_Priority priority; + } dfs_Info104; + + typedef struct { + [string,charset(UTF16)] uint16 *comment; + dfs_VolumeState state; + uint32 timeout; + uint32 property_flag_mask; + uint32 property_flags; + } dfs_Info105; + + typedef struct { + dfs_StorageState state; + dfs_Target_Priority priority; + } dfs_Info106; + + typedef struct { [string,charset(UTF16)] uint16 *dom_root; } dfs_Info200; + typedef enum { + DFS_VOLUME_FLAVOR_STANDALONE = 0x100, + DFS_VOLUME_FLAVOR_AD_BLOB = 0x200 + } dfs_VolumeFlavor; + typedef struct { - uint32 flags; + dfs_VolumeFlavor flavor; [string,charset(UTF16)] uint16 *dom_root; } dfs_Info300; typedef union { - [case(0)] dfs_Info0 *info0; + [case(0)] dfs_Info0 *info0; [case(1)] dfs_Info1 *info1; [case(2)] dfs_Info2 *info2; [case(3)] dfs_Info3 *info3; [case(4)] dfs_Info4 *info4; + [case(5)] dfs_Info5 *info5; + [case(6)] dfs_Info6 *info6; + [case(7)] dfs_Info7 *info7; [case(100)] dfs_Info100 *info100; [case(101)] dfs_Info101 *info101; [case(102)] dfs_Info102 *info102; + [case(103)] dfs_Info103 *info103; + [case(104)] dfs_Info104 *info104; + [case(105)] dfs_Info105 *info105; + [case(106)] dfs_Info106 *info106; } dfs_Info; + WERROR dfs_SetInfo ( + [in] [string,charset(UTF16)] uint16 dfs_entry_path[], + [in,unique] [string,charset(UTF16)] uint16 *servername, + [in,unique] [string,charset(UTF16)] uint16 *sharename, + [in] uint32 level, + [in,ref,switch_is(level)] dfs_Info *info + ); + + /******************/ + /* Function: 0x04 */ WERROR dfs_GetInfo ( - [in,string,charset(UTF16)] uint16 *path, - [in,unique,string,charset(UTF16)] uint16 *server, - [in,unique,string,charset(UTF16)] uint16 *share, - [in] uint32 level, + [in] [string,charset(UTF16)] uint16 dfs_entry_path[], + [in,unique] [string,charset(UTF16)] uint16 *servername, + [in,unique] [string,charset(UTF16)] uint16 *sharename, + [in] uint32 level, [out,switch_is(level)] dfs_Info *info ); @@ -167,11 +287,10 @@ } dfs_EnumStruct; WERROR dfs_Enum ( - [in] uint32 level, - [in] uint32 bufsize, - [in,out,unique] dfs_EnumStruct *info, - [in,unique] uint32 *unknown, - [in,out,unique] uint32 *total + [in] uint32 level, + [in] uint32 bufsize, + [in,out,unique] dfs_EnumStruct *info, + [in,out,unique] uint32 *total ); /* Function 0x06 */ @@ -187,22 +306,61 @@ WERROR dfs_ManagerSendSiteInfo(); /* Function 0x0a */ - WERROR dfs_AddFtRoot(); + typedef struct { + uint32 unknown1; + [string,charset(UTF16)] uint16 *unknown2; + } dfs_UnknownStruct; + + WERROR dfs_AddFtRoot( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 dns_servername[], + [in] [string,charset(UTF16)] uint16 dfsname[], + [in] [string,charset(UTF16)] uint16 rootshare[], + [in] [string,charset(UTF16)] uint16 comment[], + [in] [string,charset(UTF16)] uint16 dfs_config_dn[], + [in] uint8 unknown1, + [in] uint32 flags, + [in,out,unique] dfs_UnknownStruct **unknown2 + ); /* Function 0x0b */ - WERROR dfs_RemoveFtRoot(); - - /* Function 0x0c */ - WERROR dfs_AddStdRoot(); + WERROR dfs_RemoveFtRoot( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 dns_servername[], + [in] [string,charset(UTF16)] uint16 dfsname[], + [in] [string,charset(UTF16)] uint16 rootshare[], + [in] uint32 flags, + [in,out,unique] dfs_UnknownStruct **unknown + ); + /* Function 0x0c */ + WERROR dfs_AddStdRoot( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 rootshare[], + [in] [string,charset(UTF16)] uint16 comment[], + [in] uint32 flags + ); + /* Function 0x0d */ - WERROR dfs_RemoveStdRoot(); - + WERROR dfs_RemoveStdRoot( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 rootshare[], + [in] uint32 flags + ); + /* Function 0x0e */ - WERROR dfs_ManagerInitialize(); + WERROR dfs_ManagerInitialize( + [in] [string,charset(UTF16)] uint16 *servername, + [in] uint32 flags + ); /* Function 0x0f */ - WERROR dfs_AddStdRootForced(); + WERROR dfs_AddStdRootForced( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 rootshare[], + [in] [string,charset(UTF16)] uint16 comment[], + [in] [string,charset(UTF16)] uint16 store[] /* C:\\whatever */ + ); /* Function 0x10 */ WERROR dfs_GetDcAddress(); @@ -211,7 +369,10 @@ WERROR dfs_SetDcAddress(); /* Function 0x12 */ - WERROR dfs_FlushFtTable(); + WERROR dfs_FlushFtTable( + [in] [string,charset(UTF16)] uint16 servername[], + [in] [string,charset(UTF16)] uint16 rootshare[] + ); /* Function 0x13 */ WERROR dfs_Add2(); @@ -220,13 +381,13 @@ WERROR dfs_Remove2(); /* Function 0x15 */ - WERROR dfs_EnumEx( - [in,string,charset(UTF16)] uint16 *name, - [in] uint32 level, - [in] uint32 bufsize, - [in,out,unique] dfs_EnumStruct *info, - [in,out,unique] uint32 *total - ); + [public] WERROR dfs_EnumEx( + [in] [string,charset(UTF16)] uint16 dfs_name[], + [in] uint32 level, + [in] uint32 bufsize, + [in,out,unique] dfs_EnumStruct *info, + [in,out,unique] uint32 *total + ); /* Function 0x16 */ WERROR dfs_SetInfo2(); |