2 * Windows API header module
4 * Translated from MinGW Windows headers
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7 * Source: $(DRUNTIMESRC src/core/sys/windows/_lmshare.d)
9 module core.sys.windows.lmshare;
11 pragma(lib, "netapi32");
13 import core.sys.windows.lmcons;
14 private import core.sys.windows.w32api, core.sys.windows.windef;
17 enum SHARE_NETNAME_PARMNUM = 1;
18 enum SHARE_TYPE_PARMNUM = 3;
19 enum SHARE_REMARK_PARMNUM = 4;
20 enum SHARE_PERMISSIONS_PARMNUM = 5;
21 enum SHARE_MAX_USES_PARMNUM = 6;
22 enum SHARE_CURRENT_USES_PARMNUM = 7;
23 enum SHARE_PATH_PARMNUM = 8;
24 enum SHARE_PASSWD_PARMNUM = 9;
25 enum SHARE_FILE_SD_PARMNUM = 501;
26 enum SHARE_REMARK_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM;
27 enum SHARE_MAX_USES_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM;
28 enum SHARE_FILE_SD_INFOLEVEL = PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM;
30 enum SHI1_NUM_ELEMENTS = 4;
31 enum SHI2_NUM_ELEMENTS = 10;
33 enum STYPE_DISKTREE = 0;
34 enum STYPE_PRINTQ = 1;
35 enum STYPE_DEVICE = 2;
38 enum STYPE_SPECIAL = 0x80000000;
40 enum DWORD SHI_USES_UNLIMITED = -1;
43 enum SESS_NOENCRYPTION = 2;
44 enum SESI1_NUM_ELEMENTS = 8;
45 enum SESI2_NUM_ELEMENTS = 9;
47 enum PERM_FILE_READ = 1;
48 enum PERM_FILE_WRITE = 2;
49 enum PERM_FILE_CREATE = 4;
54 alias FILE_INFO_2* PFILE_INFO_2, LPFILE_INFO_2;
58 DWORD fi3_permissions;
63 alias FILE_INFO_3* PFILE_INFO_3, LPFILE_INFO_3;
68 alias SHARE_INFO_0* PSHARE_INFO_0, LPSHARE_INFO_0;
75 alias SHARE_INFO_1* PSHARE_INFO_1, LPSHARE_INFO_1;
81 DWORD shi2_permissions;
83 DWORD shi2_current_uses;
87 alias SHARE_INFO_2* PSHARE_INFO_2, LPSHARE_INFO_2;
89 struct SHARE_INFO_502 {
90 LPTSTR shi502_netname;
93 DWORD shi502_permissions;
94 DWORD shi502_max_uses;
95 DWORD shi502_current_uses;
98 DWORD shi502_reserved;
99 PSECURITY_DESCRIPTOR shi502_security_descriptor;
101 alias SHARE_INFO_502* PSHARE_INFO_502, LPSHARE_INFO_502;
103 struct SHARE_INFO_1004 {
104 LPTSTR shi1004_remark;
106 alias SHARE_INFO_1004* PSHARE_INFO_1004, LPSHARE_INFO_1004;
108 struct SHARE_INFO_1006 {
109 DWORD shi1006_max_uses;
111 alias SHARE_INFO_1006* PSHARE_INFO_1006, LPSHARE_INFO_1006;
113 struct SHARE_INFO_1501 {
114 DWORD shi1501_reserved;
115 PSECURITY_DESCRIPTOR shi1501_security_descriptor;
117 alias SHARE_INFO_1501* PSHARE_INFO_1501, LPSHARE_INFO_1501;
119 struct SESSION_INFO_0 {
122 alias SESSION_INFO_0* PSESSION_INFO_0, LPSESSION_INFO_0;
124 struct SESSION_INFO_1 {
126 LPTSTR sesi1_username;
127 DWORD sesi1_num_opens;
129 DWORD sesi1_idle_time;
130 DWORD sesi1_user_flags;
132 alias SESSION_INFO_1* PSESSION_INFO_1, LPSESSION_INFO_1;
134 struct SESSION_INFO_2 {
136 LPTSTR sesi2_username;
137 DWORD sesi2_num_opens;
139 DWORD sesi2_idle_time;
140 DWORD sesi2_user_flags;
141 LPWSTR sesi2_cltype_name;
143 alias SESSION_INFO_2* PSESSION_INFO_2, LPSESSION_INFO_2;
145 struct SESSION_INFO_10 {
147 LPWSTR sesi10_username;
149 DWORD sesi10_idle_time;
151 alias SESSION_INFO_10* PSESSION_INFO_10, LPSESSION_INFO_10;
153 struct SESSION_INFO_502 {
154 LPWSTR sesi502_cname;
155 LPWSTR sesi502_username;
156 DWORD sesi502_num_opens;
158 DWORD sesi502_idle_time;
159 DWORD sesi502_user_flags;
160 LPWSTR sesi502_cltype_name;
161 LPWSTR sesi502_transport;
163 alias SESSION_INFO_502* PSESSION_INFO_502, LPSESSION_INFO_502;
165 struct CONNECTION_INFO_0 {
168 alias CONNECTION_INFO_0* PCONNECTION_INFO_0, LPCONNECTION_INFO_0;
170 struct CONNECTION_INFO_1 {
173 DWORD coni1_num_opens;
174 DWORD coni1_num_users;
176 LPWSTR coni1_username;
177 LPWSTR coni1_netname;
179 alias CONNECTION_INFO_1* PCONNECTION_INFO_1, LPCONNECTION_INFO_1;
182 NET_API_STATUS NetShareAdd(LPWSTR,DWORD,PBYTE,PDWORD);
183 NET_API_STATUS NetShareEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
184 NET_API_STATUS NetShareEnumSticky(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD resume_handle);
185 NET_API_STATUS NetShareGetInfo(LPWSTR,LPWSTR,DWORD,PBYTE*);
186 NET_API_STATUS NetShareSetInfo(LPWSTR,LPWSTR,DWORD,PBYTE,PDWORD);
187 NET_API_STATUS NetShareDel(LPWSTR,LPWSTR,DWORD);
188 NET_API_STATUS NetShareDelSticky(LPWSTR,LPWSTR,DWORD);
189 NET_API_STATUS NetShareCheck(LPWSTR,LPWSTR,PDWORD);
190 NET_API_STATUS NetSessionEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
191 NET_API_STATUS NetSessionDel(LPWSTR,LPWSTR,LPWSTR);
192 NET_API_STATUS NetSessionGetInfo(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*);
193 NET_API_STATUS NetConnectionEnum(LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
194 NET_API_STATUS NetFileClose(LPWSTR,DWORD);
195 NET_API_STATUS NetFileEnum(LPWSTR,LPWSTR,LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
196 NET_API_STATUS NetFileGetInfo(LPWSTR,DWORD,DWORD,PBYTE*);