]> git.proxmox.com Git - rustc.git/blame - vendor/winapi/src/um/lmshare.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / vendor / winapi / src / um / lmshare.rs
CommitLineData
ff7c6d11
XL
1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! This module defines the API function prototypes and data structures
7use shared::basetsd::PDWORD_PTR;
8use shared::guiddef::GUID;
9use shared::lmcons::{LMSTR, NET_API_STATUS, PARMNUM_BASE_INFOLEVEL};
10use shared::minwindef::{DWORD, LPBYTE, LPDWORD, ULONG};
11use um::winnt::{BOOLEAN, PSECURITY_DESCRIPTOR};
12extern "system" {
13 pub fn NetShareAdd(
14 servername: LMSTR,
15 level: DWORD,
16 buf: LPBYTE,
17 parm_err: LPDWORD,
18 ) -> NET_API_STATUS;
19 pub fn NetShareEnum(
20 servername: LMSTR,
21 level: DWORD,
22 bufptr: *mut LPBYTE,
23 prefmaxlen: DWORD,
24 entriesread: LPDWORD,
25 totalentries: LPDWORD,
26 resumehandle: LPDWORD,
27 ) -> NET_API_STATUS;
28 pub fn NetShareEnumSticky(
29 servername: LMSTR,
30 level: DWORD,
31 bufptr: *mut LPBYTE,
32 prefmaxlen: DWORD,
33 entriesread: LPDWORD,
34 totalentries: LPDWORD,
35 resumehandle: LPDWORD,
36 ) -> NET_API_STATUS;
37 pub fn NetShareGetInfo(
38 servername: LMSTR,
39 netname: LMSTR,
40 level: DWORD,
41 bufptr: *mut LPBYTE,
42 ) -> NET_API_STATUS;
43 pub fn NetShareSetInfo(
44 servername: LMSTR,
45 netname: LMSTR,
46 level: DWORD,
47 buf: LPBYTE,
48 parm_err: LPDWORD,
49 ) -> NET_API_STATUS;
50 pub fn NetShareDel(
51 servername: LMSTR,
52 netname: LMSTR,
53 reserved: DWORD,
54 ) -> NET_API_STATUS;
55 pub fn NetShareDelSticky(
56 servername: LMSTR,
57 netname: LMSTR,
58 reserved: DWORD,
59 ) -> NET_API_STATUS;
60 pub fn NetShareCheck(
61 servername: LMSTR,
62 device: LMSTR,
63 _type: LPDWORD,
64 ) -> NET_API_STATUS;
65 pub fn NetShareDelEx(
66 servername: LMSTR,
67 level: DWORD,
68 buf: LPBYTE,
69 ) -> NET_API_STATUS;
70}
71STRUCT!{struct SHARE_INFO_0 {
72 shi0_netname: LMSTR,
73}}
74pub type PSHARE_INFO_0 = *mut SHARE_INFO_0;
75pub type LPSHARE_INFO_0 = *mut SHARE_INFO_0;
76STRUCT!{struct SHARE_INFO_1 {
77 shi1_netname: LMSTR,
78 shi1_type: DWORD,
79 shi1_remark: LMSTR,
80}}
81pub type PSHARE_INFO_1 = *mut SHARE_INFO_1;
82pub type LPSHARE_INFO_1 = *mut SHARE_INFO_1;
83STRUCT!{struct SHARE_INFO_2 {
84 shi2_netname: LMSTR,
85 shi2_type: DWORD,
86 shi2_remark: LMSTR,
87 shi2_permissions: DWORD,
88 shi2_max_uses: DWORD,
89 shi2_current_uses: DWORD,
90 shi2_path: LMSTR,
91 shi2_passwd: LMSTR,
92}}
93pub type PSHARE_INFO_2 = *mut SHARE_INFO_2;
94pub type LPSHARE_INFO_2 = *mut SHARE_INFO_2;
95STRUCT!{struct SHARE_INFO_501 {
96 shi501_netname: LMSTR,
97 shi501_type: DWORD,
98 shi501_remark: LMSTR,
99 shi501_flags: DWORD,
100}}
101pub type PSHARE_INFO_501 = *mut SHARE_INFO_501;
102pub type LPSHARE_INFO_501 = *mut SHARE_INFO_501;
103STRUCT!{struct SHARE_INFO_502 {
104 shi502_netname: LMSTR,
105 shi502_type: DWORD,
106 shi502_remark: LMSTR,
107 shi502_permissions: DWORD,
108 shi502_max_uses: DWORD,
109 shi502_current_uses: DWORD,
110 shi502_path: LMSTR,
111 shi502_passwd: LMSTR,
112 shi502_reserved: DWORD,
113 shi502_security_descriptor: PSECURITY_DESCRIPTOR,
114}}
115pub type PSHARE_INFO_502 = *mut SHARE_INFO_502;
116pub type LPSHARE_INFO_502 = *mut SHARE_INFO_502;
117STRUCT!{struct SHARE_INFO_503 {
118 shi503_netname: LMSTR,
119 shi503_type: DWORD,
120 shi503_remark: LMSTR,
121 shi503_permissions: DWORD,
122 shi503_max_uses: DWORD,
123 shi503_current_uses: DWORD,
124 shi503_path: LMSTR,
125 shi503_passwd: LMSTR,
126 shi503_servername: LMSTR,
127 shi503_reserved: DWORD,
128 shi503_security_descriptor: PSECURITY_DESCRIPTOR,
129}}
130pub type PSHARE_INFO_503 = *mut SHARE_INFO_503;
131pub type LPSHARE_INFO_503 = *mut SHARE_INFO_503;
132STRUCT!{struct SHARE_INFO_1004 {
133 shi1004_remark: LMSTR,
134}}
135pub type PSHARE_INFO_1004 = *mut SHARE_INFO_1004;
136pub type LPSHARE_INFO_1004 = *mut SHARE_INFO_1004;
137STRUCT!{struct SHARE_INFO_1005 {
138 shi1005_flags: DWORD,
139}}
140pub type PSHARE_INFO_1005 = *mut SHARE_INFO_1005;
141pub type LPSHARE_INFO_1005 = *mut SHARE_INFO_1005;
142STRUCT!{struct SHARE_INFO_1006 {
143 shi1006_max_uses: DWORD,
144}}
145pub type PSHARE_INFO_1006 = *mut SHARE_INFO_1006;
146pub type LPSHARE_INFO_1006 = *mut SHARE_INFO_1006;
147STRUCT!{struct SHARE_INFO_1501 {
148 shi1501_reserved: DWORD,
149 shi1501_security_descriptor: PSECURITY_DESCRIPTOR,
150}}
151pub type PSHARE_INFO_1501 = *mut SHARE_INFO_1501;
152pub type LPSHARE_INFO_1501 = *mut SHARE_INFO_1501;
153STRUCT!{struct SHARE_INFO_1503 {
154 shi1503_sharefilter: GUID,
155}}
156pub type PSHARE_INFO_1503 = *mut SHARE_INFO_1503;
157pub type LPSHARE_INFO_1503 = *mut SHARE_INFO_1503;
158extern "system" {
159 pub fn NetServerAliasAdd(
160 servername: LMSTR,
161 level: DWORD,
162 buf: LPBYTE,
163 ) -> NET_API_STATUS;
164 pub fn NetServerAliasDel(
165 servername: LMSTR,
166 level: DWORD,
167 buf: LPBYTE,
168 ) -> NET_API_STATUS;
169 pub fn NetServerAliasEnum(
170 servername: LMSTR,
171 level: DWORD,
172 bufptr: *mut LPBYTE,
173 prefmaxlen: DWORD,
174 entriesread: LPDWORD,
175 totalentries: LPDWORD,
176 resumehandle: LPDWORD,
177 ) -> NET_API_STATUS;
178}
179STRUCT!{struct SERVER_ALIAS_INFO_0 {
180 srvai0_alias: LMSTR,
181 srvai0_target: LMSTR,
182 srvai0_default: BOOLEAN,
183 srvai0_reserved: ULONG,
184}}
185pub type PSERVER_ALIAS_INFO_0 = *mut SERVER_ALIAS_INFO_0;
186pub type LPSERVER_ALIAS_INFO_0 = *mut SERVER_ALIAS_INFO_0;
187pub const SHARE_NETNAME_PARMNUM: DWORD = 1;
188pub const SHARE_TYPE_PARMNUM: DWORD = 3;
189pub const SHARE_REMARK_PARMNUM: DWORD = 4;
190pub const SHARE_PERMISSIONS_PARMNUM: DWORD = 5;
191pub const SHARE_MAX_USES_PARMNUM: DWORD = 6;
192pub const SHARE_CURRENT_USES_PARMNUM: DWORD = 7;
193pub const SHARE_PATH_PARMNUM: DWORD = 8;
194pub const SHARE_PASSWD_PARMNUM: DWORD = 9;
195pub const SHARE_FILE_SD_PARMNUM: DWORD = 501;
196pub const SHARE_SERVER_PARMNUM: DWORD = 503;
197pub const SHARE_REMARK_INFOLEVEL: DWORD = PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM;
198pub const SHARE_MAX_USES_INFOLEVEL: DWORD = PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM;
199pub const SHARE_FILE_SD_INFOLEVEL: DWORD = PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM;
200pub const SHI1_NUM_ELEMENTS: DWORD = 4;
201pub const SHI2_NUM_ELEMENTS: DWORD = 10;
202pub const STYPE_DISKTREE: DWORD = 0;
203pub const STYPE_PRINTQ: DWORD = 1;
204pub const STYPE_DEVICE: DWORD = 2;
205pub const STYPE_IPC: DWORD = 3;
206pub const STYPE_MASK: DWORD = 0x000000FF;
207pub const STYPE_RESERVED1: DWORD = 0x01000000;
208pub const STYPE_RESERVED2: DWORD = 0x02000000;
209pub const STYPE_RESERVED3: DWORD = 0x04000000;
210pub const STYPE_RESERVED4: DWORD = 0x08000000;
211pub const STYPE_RESERVED_ALL: DWORD = 0x3FFFFF00;
212pub const STYPE_TEMPORARY: DWORD = 0x40000000;
213pub const STYPE_SPECIAL: DWORD = 0x80000000;
214pub const SHI_USES_UNLIMITED: DWORD = -1i32 as u32;
215pub const SHI1005_FLAGS_DFS: DWORD = 0x0001;
216pub const SHI1005_FLAGS_DFS_ROOT: DWORD = 0x0002;
217pub const CSC_MASK_EXT: DWORD = 0x2030;
218pub const CSC_MASK: DWORD = 0x0030;
219pub const CSC_CACHE_MANUAL_REINT: DWORD = 0x0000;
220pub const CSC_CACHE_AUTO_REINT: DWORD = 0x0010;
221pub const CSC_CACHE_VDO: DWORD = 0x0020;
222pub const CSC_CACHE_NONE: DWORD = 0x0030;
223pub const SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS: DWORD = 0x00100;
224pub const SHI1005_FLAGS_FORCE_SHARED_DELETE: DWORD = 0x00200;
225pub const SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING: DWORD = 0x00400;
226pub const SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM: DWORD = 0x00800;
227pub const SHI1005_FLAGS_FORCE_LEVELII_OPLOCK: DWORD = 0x01000;
228pub const SHI1005_FLAGS_ENABLE_HASH: DWORD = 0x02000;
229pub const SHI1005_FLAGS_ENABLE_CA: DWORD = 0x04000;
230pub const SHI1005_FLAGS_ENCRYPT_DATA: DWORD = 0x08000;
231pub const SHI1005_FLAGS_RESERVED: DWORD = 0x10000;
232pub const SHI1005_VALID_FLAGS_SET: DWORD = CSC_MASK | SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS
233 | SHI1005_FLAGS_FORCE_SHARED_DELETE | SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING
234 | SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM | SHI1005_FLAGS_FORCE_LEVELII_OPLOCK
235 | SHI1005_FLAGS_ENABLE_HASH | SHI1005_FLAGS_ENABLE_CA | SHI1005_FLAGS_ENCRYPT_DATA
236 | SHI1005_FLAGS_RESERVED;
237extern "system" {
238 pub fn NetSessionEnum(
239 servername: LMSTR,
240 UncClientName: LMSTR,
241 username: LMSTR,
242 level: DWORD,
243 bufptr: *mut LPBYTE,
244 prefmaxlen: DWORD,
245 entriesread: LPDWORD,
246 totalentries: LPDWORD,
247 resumehandle: LPDWORD,
248 ) -> NET_API_STATUS;
249 pub fn NetSessionDel(
250 servername: LMSTR,
251 UncClientName: LMSTR,
252 username: LMSTR,
253 ) -> NET_API_STATUS;
254 pub fn NetSessionGetInfo(
255 servername: LMSTR,
256 UncClientName: LMSTR,
257 username: LMSTR,
258 level: DWORD,
259 bufptr: *mut LPBYTE,
260 ) -> NET_API_STATUS;
261}
262STRUCT!{struct SESSION_INFO_0 {
263 sesi0_cname: LMSTR,
264}}
265pub type PSESSION_INFO_0 = *mut SESSION_INFO_0;
266pub type LPSESSION_INFO_0 = *mut SESSION_INFO_0;
267STRUCT!{struct SESSION_INFO_1 {
268 sesi1_cname: LMSTR,
269 sesi1_username: LMSTR,
270 sesi1_num_opens: DWORD,
271 sesi1_time: DWORD,
272 sesi1_idle_time: DWORD,
273 sesi1_user_flags: DWORD,
274}}
275pub type PSESSION_INFO_1 = *mut SESSION_INFO_1;
276pub type LPSESSION_INFO_1 = *mut SESSION_INFO_1;
277STRUCT!{struct SESSION_INFO_2 {
278 sesi2_cname: LMSTR,
279 sesi2_username: LMSTR,
280 sesi2_num_opens: DWORD,
281 sesi2_time: DWORD,
282 sesi2_idle_time: DWORD,
283 sesi2_user_flags: DWORD,
284 sesi2_cltype_name: LMSTR,
285}}
286pub type PSESSION_INFO_2 = *mut SESSION_INFO_2;
287pub type LPSESSION_INFO_2 = *mut SESSION_INFO_2;
288STRUCT!{struct SESSION_INFO_10 {
289 sesi10_cname: LMSTR,
290 sesi10_username: LMSTR,
291 sesi10_time: DWORD,
292 sesi10_idle_time: DWORD,
293}}
294pub type PSESSION_INFO_10 = *mut SESSION_INFO_10;
295pub type LPSESSION_INFO_10 = *mut SESSION_INFO_10;
296STRUCT!{struct SESSION_INFO_502 {
297 sesi502_cname: LMSTR,
298 sesi502_username: LMSTR,
299 sesi502_num_opens: DWORD,
300 sesi502_time: DWORD,
301 sesi502_idle_time: DWORD,
302 sesi502_user_flags: DWORD,
303 sesi502_cltype_name: LMSTR,
304 sesi502_transport: LMSTR,
305}}
306pub type PSESSION_INFO_502 = *mut SESSION_INFO_502;
307pub type LPSESSION_INFO_502 = *mut SESSION_INFO_502;
308pub const SESS_GUEST: DWORD = 0x00000001;
309pub const SESS_NOENCRYPTION: DWORD = 0x00000002;
310pub const SESI1_NUM_ELEMENTS: DWORD = 8;
311pub const SESI2_NUM_ELEMENTS: DWORD = 9;
312extern "system" {
313 pub fn NetConnectionEnum(
314 servername: LMSTR,
315 qualifier: LMSTR,
316 level: DWORD,
317 bufptr: *mut LPBYTE,
318 prefmaxlen: DWORD,
319 entriesread: LPDWORD,
320 totalentries: LPDWORD,
321 resume_handle: LPDWORD,
322 ) -> NET_API_STATUS;
323}
324STRUCT!{struct CONNECTION_INFO_0 {
325 coni0_id: DWORD,
326}}
327pub type PCONNECTION_INFO_0 = *mut CONNECTION_INFO_0;
328pub type LPCONNECTION_INFO_0 = *mut CONNECTION_INFO_0;
329STRUCT!{struct CONNECTION_INFO_1 {
330 coni1_id: DWORD,
331 coni1_type: DWORD,
332 coni1_num_opens: DWORD,
333 coni1_num_users: DWORD,
334 coni1_time: DWORD,
335 coni1_username: LMSTR,
336 coni1_netname: LMSTR,
337}}
338pub type PCONNECTION_INFO_1 = *mut CONNECTION_INFO_1;
339pub type LPCONNECTION_INFO_1 = *mut CONNECTION_INFO_1;
340extern "system" {
341 pub fn NetFileClose(
342 servername: LMSTR,
343 fileid: DWORD,
344 ) -> NET_API_STATUS;
345 pub fn NetFileEnum(
346 servername: LMSTR,
347 basepath: LMSTR,
348 username: LMSTR,
349 level: DWORD,
350 bufptr: *mut LPBYTE,
351 prefmaxlen: DWORD,
352 entriesread: LPDWORD,
353 totalentries: LPDWORD,
354 resume_handle: PDWORD_PTR,
355 ) -> NET_API_STATUS;
356 pub fn NetFileGetInfo(
357 servername: LMSTR,
358 fileid: DWORD,
359 level: DWORD,
360 bufptr: *mut LPBYTE,
361 ) -> NET_API_STATUS;
362}
363STRUCT!{struct FILE_INFO_2 {
364 fi2_id: DWORD,
365}}
366pub type PFILE_INFO_2 = *mut FILE_INFO_2;
367pub type LPFILE_INFO_2 = *mut FILE_INFO_2;
368STRUCT!{struct FILE_INFO_3 {
369 fi3_id: DWORD,
370 fi3_permissions: DWORD,
371 fi3_num_locks: DWORD,
372 fi3_pathname: LMSTR,
373 fi3_username: LMSTR,
374}}
375pub type PFILE_INFO_3 = *mut FILE_INFO_3;
376pub type LPFILE_INFO_3 = *mut FILE_INFO_3;
377pub const PERM_FILE_READ: DWORD = 0x1;
378pub const PERM_FILE_WRITE: DWORD = 0x2;
379pub const PERM_FILE_CREATE: DWORD = 0x4;