1
|
1 /***********************************************************************\
|
|
2 * lmshare.d *
|
|
3 * *
|
|
4 * Windows API header module *
|
|
5 * *
|
|
6 * Translated from MinGW Windows headers *
|
|
7 * *
|
|
8 * Placed into public domain *
|
|
9 \***********************************************************************/
|
|
10 module win32.lmshare;
|
|
11
|
|
12 import win32.lmcons;
|
|
13 private import win32.w32api, win32.windef;
|
|
14
|
|
15 static if (_WIN32_WINNT_ONLY) {
|
|
16 pragma(lib, "netapi.lib");
|
|
17 }
|
|
18 /* else {
|
|
19 // only for WinME, 98, 95.
|
|
20 pragma(lib, "svrapi.lib")
|
|
21 }
|
|
22 */
|
|
23
|
|
24 const SHARE_NETNAME_PARMNUM = 1;
|
|
25 const SHARE_TYPE_PARMNUM = 3;
|
|
26 const SHARE_REMARK_PARMNUM = 4;
|
|
27 const SHARE_PERMISSIONS_PARMNUM = 5;
|
|
28 const SHARE_MAX_USES_PARMNUM = 6;
|
|
29 const SHARE_CURRENT_USES_PARMNUM = 7;
|
|
30 const SHARE_PATH_PARMNUM = 8;
|
|
31 const SHARE_PASSWD_PARMNUM = 9;
|
|
32 const SHARE_FILE_SD_PARMNUM = 501;
|
|
33 const SHARE_REMARK_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM;
|
|
34 const SHARE_MAX_USES_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM;
|
|
35 const SHARE_FILE_SD_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM;
|
|
36
|
|
37 const SHI1_NUM_ELEMENTS = 4;
|
|
38 const SHI2_NUM_ELEMENTS = 10;
|
|
39
|
|
40 const STYPE_DISKTREE = 0;
|
|
41 const STYPE_PRINTQ = 1;
|
|
42 const STYPE_DEVICE = 2;
|
|
43 const STYPE_IPC = 3;
|
|
44 const STYPE_DFS = 100;
|
|
45 const STYPE_SPECIAL = 0x80000000;
|
|
46
|
|
47 const DWORD SHI_USES_UNLIMITED = -1;
|
|
48
|
|
49 const SESS_GUEST = 1;
|
|
50 const SESS_NOENCRYPTION = 2;
|
|
51 const SESI1_NUM_ELEMENTS = 8;
|
|
52 const SESI2_NUM_ELEMENTS = 9;
|
|
53
|
|
54 const PERM_FILE_READ = 1;
|
|
55 const PERM_FILE_WRITE = 2;
|
|
56 const PERM_FILE_CREATE = 4;
|
|
57
|
|
58 struct FILE_INFO_2 {
|
|
59 DWORD fi2_id;
|
|
60 }
|
|
61 alias FILE_INFO_2* PFILE_INFO_2, LPFILE_INFO_2;
|
|
62
|
|
63 struct FILE_INFO_3 {
|
|
64 DWORD fi3_id;
|
|
65 DWORD fi3_permissions;
|
|
66 DWORD fi3_num_locks;
|
|
67 LPTSTR fi3_pathname;
|
|
68 LPTSTR fi3_username;
|
|
69 }
|
|
70 alias FILE_INFO_3* PFILE_INFO_3, LPFILE_INFO_3;
|
|
71
|
|
72 struct SHARE_INFO_0 {
|
|
73 LPTSTR shi0_netname;
|
|
74 }
|
|
75 alias SHARE_INFO_0* PSHARE_INFO_0, LPSHARE_INFO_0;
|
|
76
|
|
77 struct SHARE_INFO_1 {
|
|
78 LPTSTR shi1_netname;
|
|
79 DWORD shi1_type;
|
|
80 LPTSTR shi1_remark;
|
|
81 }
|
|
82 alias SHARE_INFO_1* PSHARE_INFO_1, LPSHARE_INFO_1;
|
|
83
|
|
84 struct SHARE_INFO_2 {
|
|
85 LPTSTR shi2_netname;
|
|
86 DWORD shi2_type;
|
|
87 LPTSTR shi2_remark;
|
|
88 DWORD shi2_permissions;
|
|
89 DWORD shi2_max_uses;
|
|
90 DWORD shi2_current_uses;
|
|
91 LPTSTR shi2_path;
|
|
92 LPTSTR shi2_passwd;
|
|
93 }
|
|
94 alias SHARE_INFO_2* PSHARE_INFO_2, LPSHARE_INFO_2;
|
|
95
|
|
96 struct SHARE_INFO_502 {
|
|
97 LPTSTR shi502_netname;
|
|
98 DWORD shi502_type;
|
|
99 LPTSTR shi502_remark;
|
|
100 DWORD shi502_permissions;
|
|
101 DWORD shi502_max_uses;
|
|
102 DWORD shi502_current_uses;
|
|
103 LPTSTR shi502_path;
|
|
104 LPTSTR shi502_passwd;
|
|
105 DWORD shi502_reserved;
|
|
106 PSECURITY_DESCRIPTOR shi502_security_descriptor;
|
|
107 }
|
|
108 alias SHARE_INFO_502* PSHARE_INFO_502, LPSHARE_INFO_502;
|
|
109
|
|
110 struct SHARE_INFO_1004 {
|
|
111 LPTSTR shi1004_remark;
|
|
112 }
|
|
113 alias SHARE_INFO_1004* PSHARE_INFO_1004, LPSHARE_INFO_1004;
|
|
114
|
|
115 struct SHARE_INFO_1006 {
|
|
116 DWORD shi1006_max_uses;
|
|
117 }
|
|
118 alias SHARE_INFO_1006* PSHARE_INFO_1006, LPSHARE_INFO_1006;
|
|
119
|
|
120 struct SHARE_INFO_1501 {
|
|
121 DWORD shi1501_reserved;
|
|
122 PSECURITY_DESCRIPTOR shi1501_security_descriptor;
|
|
123 }
|
|
124 alias SHARE_INFO_1501* PSHARE_INFO_1501, LPSHARE_INFO_1501;
|
|
125
|
|
126 struct SESSION_INFO_0 {
|
|
127 LPWSTR sesi0_cname;
|
|
128 }
|
|
129 alias SESSION_INFO_0* PSESSION_INFO_0, LPSESSION_INFO_0;
|
|
130
|
|
131 struct SESSION_INFO_1 {
|
|
132 LPTSTR sesi1_cname;
|
|
133 LPTSTR sesi1_username;
|
|
134 DWORD sesi1_num_opens;
|
|
135 DWORD sesi1_time;
|
|
136 DWORD sesi1_idle_time;
|
|
137 DWORD sesi1_user_flags;
|
|
138 }
|
|
139 alias SESSION_INFO_1* PSESSION_INFO_1, LPSESSION_INFO_1;
|
|
140
|
|
141 struct SESSION_INFO_2 {
|
|
142 LPTSTR sesi2_cname;
|
|
143 LPTSTR sesi2_username;
|
|
144 DWORD sesi2_num_opens;
|
|
145 DWORD sesi2_time;
|
|
146 DWORD sesi2_idle_time;
|
|
147 DWORD sesi2_user_flags;
|
|
148 LPWSTR sesi2_cltype_name;
|
|
149 }
|
|
150 alias SESSION_INFO_2* PSESSION_INFO_2, LPSESSION_INFO_2;
|
|
151
|
|
152 struct SESSION_INFO_10 {
|
|
153 LPWSTR sesi10_cname;
|
|
154 LPWSTR sesi10_username;
|
|
155 DWORD sesi10_time;
|
|
156 DWORD sesi10_idle_time;
|
|
157 }
|
|
158 alias SESSION_INFO_10* PSESSION_INFO_10, LPSESSION_INFO_10;
|
|
159
|
|
160 struct SESSION_INFO_502 {
|
|
161 LPWSTR sesi502_cname;
|
|
162 LPWSTR sesi502_username;
|
|
163 DWORD sesi502_num_opens;
|
|
164 DWORD sesi502_time;
|
|
165 DWORD sesi502_idle_time;
|
|
166 DWORD sesi502_user_flags;
|
|
167 LPWSTR sesi502_cltype_name;
|
|
168 LPWSTR sesi502_transport;
|
|
169 }
|
|
170 alias SESSION_INFO_502* PSESSION_INFO_502, LPSESSION_INFO_502;
|
|
171
|
|
172 struct CONNECTION_INFO_0 {
|
|
173 DWORD coni0_id;
|
|
174 }
|
|
175 alias CONNECTION_INFO_0* PCONNECTION_INFO_0, LPCONNECTION_INFO_0;
|
|
176
|
|
177 struct CONNECTION_INFO_1 {
|
|
178 DWORD coni1_id;
|
|
179 DWORD coni1_type;
|
|
180 DWORD coni1_num_opens;
|
|
181 DWORD coni1_num_users;
|
|
182 DWORD coni1_time;
|
|
183 LPWSTR coni1_username;
|
|
184 LPWSTR coni1_netname;
|
|
185 }
|
|
186 alias CONNECTION_INFO_1* PCONNECTION_INFO_1, LPCONNECTION_INFO_1;
|
|
187
|
|
188 extern (Windows) {
|
|
189 NET_API_STATUS NetShareAdd(LPWSTR,DWORD,PBYTE,PDWORD);
|
|
190 NET_API_STATUS NetShareEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
|
|
191 NET_API_STATUS NetShareEnumSticky(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD resume_handle);
|
|
192 NET_API_STATUS NetShareGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*);
|
|
193 NET_API_STATUS NetShareSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD);
|
|
194 NET_API_STATUS NetShareDel(LPWSTR,LPWSTR,DWORD);
|
|
195 NET_API_STATUS NetShareDelSticky(LPWSTR,LPWSTR,DWORD);
|
|
196 NET_API_STATUS NetShareCheck(LPWSTR,LPWSTR,PDWORD);
|
|
197 NET_API_STATUS NetSessionEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
|
|
198 NET_API_STATUS NetSessionDel(LPWSTR,LPWSTR,LPWSTR);
|
|
199 NET_API_STATUS NetSessionGetInfo(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*);
|
|
200 NET_API_STATUS NetConnectionEnum(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
|
|
201 NET_API_STATUS NetFileClose(LPWSTR,DWORD);
|
|
202 NET_API_STATUS NetFileEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
|
|
203 NET_API_STATUS NetFileGetInfo(LPWSTR,DWORD,DWORD,PBYTE*);
|
|
204 } |