1/* 2 Unix SMB/CIFS implementation. 3 Samba parameters and setup 4 Copyright (C) Andrew Tridgell 1992-2000 5 Copyright (C) Luke Kenneth Casson Leighton 1996 - 2000 6 Copyright (C) Shirish Kalele 2000 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with this program; if not, write to the Free Software 20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 21*/ 22 23#ifndef _RPC_DFS_H 24#define _RPC_DFS_H 25 26/* NETDFS pipe: calls */ 27#define DFS_EXIST 0x00 28#define DFS_ADD 0x01 29#define DFS_REMOVE 0x02 30#define DFS_GET_INFO 0x04 31#define DFS_ENUM 0x05 32 33/* dfsadd flags */ 34#define DFSFLAG_ADD_VOLUME 0x00000001 35#define DFSFLAG_RESTORE_VOLUME 0x00000002 36 37typedef struct dfs_q_dfs_exist 38{ 39 uint32 dummy; 40} 41DFS_Q_DFS_EXIST; 42 43/* status == 1 if dfs exists. */ 44typedef struct dfs_r_dfs_exist 45{ 46 uint32 status; /* Not a WERROR or NTSTATUS code */ 47} 48DFS_R_DFS_EXIST; 49 50typedef struct dfs_q_dfs_add 51{ 52 uint32 ptr_DfsEntryPath; 53 UNISTR2 DfsEntryPath; 54 uint32 ptr_ServerName; 55 UNISTR2 ServerName; 56 uint32 ptr_ShareName; 57 UNISTR2 ShareName; 58 uint32 ptr_Comment; 59 UNISTR2 Comment; 60 uint32 Flags; 61} 62DFS_Q_DFS_ADD; 63 64typedef struct dfs_r_dfs_add 65{ 66 WERROR status; 67} 68DFS_R_DFS_ADD; 69 70/********************************************/ 71typedef struct dfs_q_dfs_remove 72{ 73 UNISTR2 DfsEntryPath; 74 uint32 ptr_ServerName; 75 UNISTR2 ServerName; 76 uint32 ptr_ShareName; 77 UNISTR2 ShareName; 78} 79DFS_Q_DFS_REMOVE; 80 81typedef struct dfs_r_dfs_remove 82{ 83 WERROR status; 84} 85DFS_R_DFS_REMOVE; 86 87/********************************************/ 88typedef struct dfs_info_1 89{ 90 uint32 ptr_entrypath; 91 UNISTR2 entrypath; 92} 93DFS_INFO_1; 94 95typedef struct dfs_info_2 96{ 97 uint32 ptr_entrypath; 98 UNISTR2 entrypath; 99 uint32 ptr_comment; 100 UNISTR2 comment; 101 uint32 state; 102 uint32 num_storages; 103} 104DFS_INFO_2; 105 106typedef struct dfs_storage_info 107{ 108 uint32 state; 109 uint32 ptr_servername; 110 UNISTR2 servername; 111 uint32 ptr_sharename; 112 UNISTR2 sharename; 113} 114DFS_STORAGE_INFO; 115 116typedef struct dfs_info_3 117{ 118 uint32 ptr_entrypath; 119 UNISTR2 entrypath; 120 uint32 ptr_comment; 121 UNISTR2 comment; 122 uint32 state; 123 uint32 num_storages; 124 uint32 ptr_storages; 125 uint32 num_storage_infos; 126 DFS_STORAGE_INFO* storages; 127} 128DFS_INFO_3; 129 130typedef struct dfs_info_ctr 131{ 132 133 uint32 switch_value; 134 uint32 num_entries; 135 uint32 ptr_dfs_ctr; /* pointer to dfs info union */ 136 union 137 { 138 DFS_INFO_1 *info1; 139 DFS_INFO_2 *info2; 140 DFS_INFO_3 *info3; 141 } dfs; 142} 143DFS_INFO_CTR; 144 145typedef struct dfs_q_dfs_get_info 146{ 147 UNISTR2 uni_path; 148 149 uint32 ptr_server; 150 UNISTR2 uni_server; 151 152 uint32 ptr_share; 153 UNISTR2 uni_share; 154 155 uint32 level; 156} 157DFS_Q_DFS_GET_INFO; 158 159typedef struct dfs_r_dfs_get_info 160{ 161 uint32 level; 162 uint32 ptr_ctr; 163 DFS_INFO_CTR ctr; 164 WERROR status; 165} 166DFS_R_DFS_GET_INFO; 167 168typedef struct dfs_q_dfs_enum 169{ 170 uint32 level; 171 uint32 maxpreflen; 172 uint32 ptr_buffer; 173 uint32 level2; 174 uint32 ptr_num_entries; 175 uint32 num_entries; 176 uint32 ptr_num_entries2; 177 uint32 num_entries2; 178 ENUM_HND reshnd; 179} 180DFS_Q_DFS_ENUM; 181 182typedef struct dfs_r_dfs_enum 183{ 184 DFS_INFO_CTR *ctr; 185 uint32 ptr_buffer; 186 uint32 level; 187 uint32 level2; 188 uint32 ptr_num_entries; 189 uint32 num_entries; 190 uint32 ptr_num_entries2; 191 uint32 num_entries2; 192 ENUM_HND reshnd; 193 WERROR status; 194} 195DFS_R_DFS_ENUM; 196 197#endif 198