summaryrefslogtreecommitdiffstats
path: root/source/include/rpc_dfs.h
blob: 1677f7f7ed01eacb4e2cb0655c23d370bb061a49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#ifndef _RPC_DFS_H
#define _RPC_DFS_H

/* NETDFS pipe: calls */
#define DFS_EXIST                0x00
#define DFS_ADD                  0x01
#define DFS_REMOVE               0x02
#define DFS_ENUM                 0x05

/* dfsadd flags */
#define DFSFLAG_ADD_VOLUME           0x00000001
#define DFSFLAG_RESTORE_VOLUME       0x00000002

typedef struct dfs_r_dfs_exist
{
  uint32 dfs_exist_flag;
}
DFS_R_DFS_EXIST;

typedef struct dfs_q_dfs_add
{
  uint32 ptr_DfsEntryPath;
  UNISTR2 DfsEntryPath;
  uint32 ptr_ServerName;
  UNISTR2 ServerName;
  uint32 ptr_ShareName;
  UNISTR2 ShareName;
  uint32 ptr_Comment;
  UNISTR2 Comment;
  uint32 Flags;
}
DFS_Q_DFS_ADD;

typedef struct dfs_r_dfs_add
{
  uint32 status;
}
DFS_R_DFS_ADD;

/********************************************/
typedef struct dfs_q_dfs_remove
{
  UNISTR2 DfsEntryPath;
  uint32 ptr_ServerName;
  UNISTR2 ServerName;
  uint32 ptr_ShareName;
  UNISTR2 ShareName;
}
DFS_Q_DFS_REMOVE;

typedef struct dfs_r_dfs_remove
{
  uint32 status;
}
DFS_R_DFS_REMOVE;

/********************************************/
typedef struct dfs_info_1
{
  uint32 ptr_entrypath;
  UNISTR2 entrypath;
}
DFS_INFO_1;

typedef struct dfs_info_2
{
  uint32 ptr_entrypath;
  UNISTR2 entrypath;
  uint32 ptr_comment;
  UNISTR2 comment;
  uint32 state;
  uint32 num_storages;
}
DFS_INFO_2;

typedef struct dfs_storage_info
{
  uint32 state;
  uint32 ptr_servername;
  UNISTR2 servername;
  uint32 ptr_sharename;
  UNISTR2 sharename;
}
DFS_STORAGE_INFO;

typedef struct dfs_info_3
{
  uint32 ptr_entrypath;
  UNISTR2 entrypath;
  uint32 ptr_comment;
  UNISTR2 comment;
  uint32 state;
  uint32 num_storages;
  uint32 ptr_storages;
  uint32 num_storage_infos;
  DFS_STORAGE_INFO* storages;
}
DFS_INFO_3;

typedef struct dfs_info_ctr
{
  
  uint32 switch_value;
  uint32 num_entries;
  uint32 ptr_dfs_ctr; /* pointer to dfs info union */
  union
  {
    DFS_INFO_1 *info1;
    DFS_INFO_2 *info2;
    DFS_INFO_3 *info3;
  } dfs;
}
DFS_INFO_CTR;

typedef struct dfs_q_dfs_enum
{
  uint32 level;
  uint32 maxpreflen;
  uint32 ptr_buffer;
  uint32 level2;
  uint32 ptr_num_entries;
  uint32 num_entries;
  uint32 ptr_num_entries2;
  uint32 num_entries2;
  ENUM_HND reshnd;
}
DFS_Q_DFS_ENUM;

typedef struct dfs_r_dfs_enum
{
  DFS_INFO_CTR *ctr;
  uint32 ptr_buffer;
  uint32 level;
  uint32 level2;
  uint32 ptr_num_entries;
  uint32 num_entries;
  uint32 ptr_num_entries2;
  uint32 num_entries2;
  ENUM_HND reshnd;
  uint32 status;
}
DFS_R_DFS_ENUM;

#endif