1/**
2 * Windows API header module
3 *
4 * Translated from MinGW Windows headers
5 *
6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7 * Source: $(DRUNTIMESRC core/sys/windows/_lmwksta.d)
8 */
9module core.sys.windows.lmwksta;
10version (Windows):
11@system:
12pragma(lib, "netapi32");
13
14import core.sys.windows.lmuseflg;
15import core.sys.windows.lmcons, core.sys.windows.windef;
16
17pragma(lib, "Netapi32");
18
19enum {
20    WKSTA_COMPUTERNAME_PARMNUM     = 1,
21    WKSTA_LANGROUP_PARMNUM,     // = 2
22    WKSTA_VER_MAJOR_PARMNUM        = 4,
23    WKSTA_VER_MINOR_PARMNUM,
24    WKSTA_LOGGED_ON_USERS_PARMNUM,
25    WKSTA_LANROOT_PARMNUM,
26    WKSTA_LOGON_DOMAIN_PARMNUM,
27    WKSTA_LOGON_SERVER_PARMNUM,
28    WKSTA_CHARWAIT_PARMNUM,
29    WKSTA_CHARTIME_PARMNUM,
30    WKSTA_CHARCOUNT_PARMNUM,
31    WKSTA_KEEPCONN_PARMNUM,
32    WKSTA_KEEPSEARCH_PARMNUM,
33    WKSTA_MAXCMDS_PARMNUM,
34    WKSTA_NUMWORKBUF_PARMNUM,
35    WKSTA_MAXWRKCACHE_PARMNUM,
36    WKSTA_SESSTIMEOUT_PARMNUM,
37    WKSTA_SIZERROR_PARMNUM,
38    WKSTA_NUMALERTS_PARMNUM,
39    WKSTA_NUMSERVICES_PARMNUM,
40    WKSTA_NUMCHARBUF_PARMNUM,
41    WKSTA_SIZCHARBUF_PARMNUM,     // = 23
42    WKSTA_ERRLOGSZ_PARMNUM           = 27,
43    WKSTA_PRINTBUFTIME_PARMNUM,
44    WKSTA_SIZWORKBUF_PARMNUM,
45    WKSTA_MAILSLOTS_PARMNUM,
46    WKSTA_NUMDGRAMBUF_PARMNUM,
47    WKSTA_WRKHEURISTICS_PARMNUM,
48    WKSTA_MAXTHREADS_PARMNUM,     // = 33
49    WKSTA_LOCKQUOTA_PARMNUM          = 41,
50    WKSTA_LOCKINCREMENT_PARMNUM,
51    WKSTA_LOCKMAXIMUM_PARMNUM,
52    WKSTA_PIPEINCREMENT_PARMNUM,
53    WKSTA_PIPEMAXIMUM_PARMNUM,
54    WKSTA_DORMANTFILELIMIT_PARMNUM,
55    WKSTA_CACHEFILETIMEOUT_PARMNUM,
56    WKSTA_USEOPPORTUNISTICLOCKING_PARMNUM,
57    WKSTA_USEUNLOCKBEHIND_PARMNUM,
58    WKSTA_USECLOSEBEHIND_PARMNUM,
59    WKSTA_BUFFERNAMEDPIPES_PARMNUM,
60    WKSTA_USELOCKANDREADANDUNLOCK_PARMNUM,
61    WKSTA_UTILIZENTCACHING_PARMNUM,
62    WKSTA_USERAWREAD_PARMNUM,
63    WKSTA_USERAWWRITE_PARMNUM,
64    WKSTA_USEWRITERAWWITHDATA_PARMNUM,
65    WKSTA_USEENCRYPTION_PARMNUM,
66    WKSTA_BUFFILESWITHDENYWRITE_PARMNUM,
67    WKSTA_BUFFERREADONLYFILES_PARMNUM,
68    WKSTA_FORCECORECREATEMODE_PARMNUM,
69    WKSTA_USE512BYTESMAXTRANSFER_PARMNUM,
70    WKSTA_READAHEADTHRUPUT_PARMNUM,    // = 62
71    WKSTA_PLATFORM_ID_PARMNUM             = 100,
72    WKSTA_OTH_DOMAINS_PARMNUM             = 101,
73    TRANSPORT_QUALITYOFSERVICE_PARMNUM    = 201,
74    TRANSPORT_NAME_PARMNUM                = 202
75}
76
77struct WKSTA_INFO_100{
78    DWORD wki100_platform_id;
79    LPWSTR wki100_computername;
80    LPWSTR wki100_langroup;
81    DWORD wki100_ver_major;
82    DWORD wki100_ver_minor;
83}
84alias WKSTA_INFO_100* PWKSTA_INFO_100, LPWKSTA_INFO_100;
85
86struct WKSTA_INFO_101{
87    DWORD wki101_platform_id;
88    LPWSTR wki101_computername;
89    LPWSTR wki101_langroup;
90    DWORD wki101_ver_major;
91    DWORD wki101_ver_minor;
92    LPWSTR wki101_lanroot;
93}
94alias WKSTA_INFO_101* PWKSTA_INFO_101, LPWKSTA_INFO_101;
95
96struct WKSTA_INFO_102{
97    DWORD wki102_platform_id;
98    LPWSTR wki102_computername;
99    LPWSTR wki102_langroup;
100    DWORD wki102_ver_major;
101    DWORD wki102_ver_minor;
102    LPWSTR wki102_lanroot;
103    DWORD wki102_logged_on_users;
104}
105alias WKSTA_INFO_102* PWKSTA_INFO_102, LPWKSTA_INFO_102;
106
107struct WKSTA_INFO_302{
108    DWORD wki302_char_wait;
109    DWORD wki302_collection_time;
110    DWORD wki302_maximum_collection_count;
111    DWORD wki302_keep_conn;
112    DWORD wki302_keep_search;
113    DWORD wki302_max_cmds;
114    DWORD wki302_num_work_buf;
115    DWORD wki302_siz_work_buf;
116    DWORD wki302_max_wrk_cache;
117    DWORD wki302_sess_timeout;
118    DWORD wki302_siz_error;
119    DWORD wki302_num_alerts;
120    DWORD wki302_num_services;
121    DWORD wki302_errlog_sz;
122    DWORD wki302_print_buf_time;
123    DWORD wki302_num_char_buf;
124    DWORD wki302_siz_char_buf;
125    LPWSTR wki302_wrk_heuristics;
126    DWORD wki302_mailslots;
127    DWORD wki302_num_dgram_buf;
128}
129alias WKSTA_INFO_302* PWKSTA_INFO_302, LPWKSTA_INFO_302;
130
131struct WKSTA_INFO_402{
132    DWORD wki402_char_wait;
133    DWORD wki402_collection_time;
134    DWORD wki402_maximum_collection_count;
135    DWORD wki402_keep_conn;
136    DWORD wki402_keep_search;
137    DWORD wki402_max_cmds;
138    DWORD wki402_num_work_buf;
139    DWORD wki402_siz_work_buf;
140    DWORD wki402_max_wrk_cache;
141    DWORD wki402_sess_timeout;
142    DWORD wki402_siz_error;
143    DWORD wki402_num_alerts;
144    DWORD wki402_num_services;
145    DWORD wki402_errlog_sz;
146    DWORD wki402_print_buf_time;
147    DWORD wki402_num_char_buf;
148    DWORD wki402_siz_char_buf;
149    LPWSTR wki402_wrk_heuristics;
150    DWORD wki402_mailslots;
151    DWORD wki402_num_dgram_buf;
152    DWORD wki402_max_threads;
153}
154alias WKSTA_INFO_402* PWKSTA_INFO_402, LPWKSTA_INFO_402;
155
156struct WKSTA_INFO_502{
157    DWORD wki502_char_wait;
158    DWORD wki502_collection_time;
159    DWORD wki502_maximum_collection_count;
160    DWORD wki502_keep_conn;
161    DWORD wki502_max_cmds;
162    DWORD wki502_sess_timeout;
163    DWORD wki502_siz_char_buf;
164    DWORD wki502_max_threads;
165    DWORD wki502_lock_quota;
166    DWORD wki502_lock_increment;
167    DWORD wki502_lock_maximum;
168    DWORD wki502_pipe_increment;
169    DWORD wki502_pipe_maximum;
170    DWORD wki502_cache_file_timeout;
171    DWORD wki502_dormant_file_limit;
172    DWORD wki502_read_ahead_throughput;
173    DWORD wki502_num_mailslot_buffers;
174    DWORD wki502_num_srv_announce_buffers;
175    DWORD wki502_max_illegal_datagram_events;
176    DWORD wki502_illegal_datagram_event_reset_frequency;
177    BOOL wki502_log_election_packets;
178    BOOL wki502_use_opportunistic_locking;
179    BOOL wki502_use_unlock_behind;
180    BOOL wki502_use_close_behind;
181    BOOL wki502_buf_named_pipes;
182    BOOL wki502_use_lock_read_unlock;
183    BOOL wki502_utilize_nt_caching;
184    BOOL wki502_use_raw_read;
185    BOOL wki502_use_raw_write;
186    BOOL wki502_use_write_raw_data;
187    BOOL wki502_use_encryption;
188    BOOL wki502_buf_files_deny_write;
189    BOOL wki502_buf_read_only_files;
190    BOOL wki502_force_core_create_mode;
191    BOOL wki502_use_512_byte_max_transfer;
192}
193alias WKSTA_INFO_502* PWKSTA_INFO_502, LPWKSTA_INFO_502;
194
195struct WKSTA_INFO_1010 {
196    DWORD wki1010_char_wait;
197}
198alias WKSTA_INFO_1010* PWKSTA_INFO_1010, LPWKSTA_INFO_1010;
199
200struct WKSTA_INFO_1011 {
201    DWORD wki1011_collection_time;
202}
203alias WKSTA_INFO_1011* PWKSTA_INFO_1011, LPWKSTA_INFO_1011;
204
205struct WKSTA_INFO_1012 {
206    DWORD wki1012_maximum_collection_count;
207}
208alias WKSTA_INFO_1012* PWKSTA_INFO_1012, LPWKSTA_INFO_1012;
209
210struct WKSTA_INFO_1027 {
211    DWORD wki1027_errlog_sz;
212}
213alias WKSTA_INFO_1027* PWKSTA_INFO_1027, LPWKSTA_INFO_1027;
214
215struct WKSTA_INFO_1028 {
216    DWORD wki1028_print_buf_time;
217}
218alias WKSTA_INFO_1028* PWKSTA_INFO_1028, LPWKSTA_INFO_1028;
219
220struct WKSTA_INFO_1032 {
221    DWORD wki1032_wrk_heuristics;
222}
223alias WKSTA_INFO_1032* PWKSTA_INFO_1032, LPWKSTA_INFO_1032;
224
225struct WKSTA_INFO_1013 {
226    DWORD wki1013_keep_conn;
227}
228alias WKSTA_INFO_1013* PWKSTA_INFO_1013, LPWKSTA_INFO_1013;
229
230struct WKSTA_INFO_1018 {
231    DWORD wki1018_sess_timeout;
232}
233alias WKSTA_INFO_1018* PWKSTA_INFO_1018, LPWKSTA_INFO_1018;
234
235struct WKSTA_INFO_1023 {
236    DWORD wki1023_siz_char_buf;
237}
238alias WKSTA_INFO_1023* PWKSTA_INFO_1023, LPWKSTA_INFO_1023;
239
240struct WKSTA_INFO_1033 {
241    DWORD wki1033_max_threads;
242}
243alias WKSTA_INFO_1033* PWKSTA_INFO_1033, LPWKSTA_INFO_1033;
244
245struct WKSTA_INFO_1041 {
246    DWORD wki1041_lock_quota;
247}
248alias WKSTA_INFO_1041* PWKSTA_INFO_1041, LPWKSTA_INFO_1041;
249
250struct WKSTA_INFO_1042 {
251    DWORD wki1042_lock_increment;
252}
253alias WKSTA_INFO_1042* PWKSTA_INFO_1042, LPWKSTA_INFO_1042;
254
255struct WKSTA_INFO_1043 {
256    DWORD wki1043_lock_maximum;
257}
258alias WKSTA_INFO_1043* PWKSTA_INFO_1043, LPWKSTA_INFO_1043;
259
260struct WKSTA_INFO_1044 {
261    DWORD wki1044_pipe_increment;
262}
263alias WKSTA_INFO_1044* PWKSTA_INFO_1044, LPWKSTA_INFO_1044;
264
265struct WKSTA_INFO_1045 {
266    DWORD wki1045_pipe_maximum;
267}
268alias WKSTA_INFO_1045* PWKSTA_INFO_1045, LPWKSTA_INFO_1045;
269
270struct WKSTA_INFO_1046 {
271    DWORD wki1046_dormant_file_limit;
272}
273alias WKSTA_INFO_1046* PWKSTA_INFO_1046, LPWKSTA_INFO_1046;
274
275struct WKSTA_INFO_1047 {
276    DWORD wki1047_cache_file_timeout;
277}
278alias WKSTA_INFO_1047* PWKSTA_INFO_1047, LPWKSTA_INFO_1047;
279
280struct WKSTA_INFO_1048 {
281    BOOL wki1048_use_opportunistic_locking;
282}
283alias WKSTA_INFO_1048* PWKSTA_INFO_1048, LPWKSTA_INFO_1048;
284
285struct WKSTA_INFO_1049 {
286    BOOL wki1049_use_unlock_behind;
287}
288alias WKSTA_INFO_1049* PWKSTA_INFO_1049, LPWKSTA_INFO_1049;
289
290struct WKSTA_INFO_1050 {
291    BOOL wki1050_use_close_behind;
292}
293alias WKSTA_INFO_1050* PWKSTA_INFO_1050, LPWKSTA_INFO_1050;
294
295struct WKSTA_INFO_1051 {
296    BOOL wki1051_buf_named_pipes;
297}
298alias WKSTA_INFO_1051* PWKSTA_INFO_1051, LPWKSTA_INFO_1051;
299
300struct WKSTA_INFO_1052 {
301    BOOL wki1052_use_lock_read_unlock;
302}
303alias WKSTA_INFO_1052* PWKSTA_INFO_1052, LPWKSTA_INFO_1052;
304
305struct WKSTA_INFO_1053 {
306    BOOL wki1053_utilize_nt_caching;
307}
308alias WKSTA_INFO_1053* PWKSTA_INFO_1053, LPWKSTA_INFO_1053;
309
310struct WKSTA_INFO_1054 {
311    BOOL wki1054_use_raw_read;
312}
313alias WKSTA_INFO_1054* PWKSTA_INFO_1054, LPWKSTA_INFO_1054;
314
315struct WKSTA_INFO_1055 {
316    BOOL wki1055_use_raw_write;
317}
318alias WKSTA_INFO_1055* PWKSTA_INFO_1055, LPWKSTA_INFO_1055;
319
320struct WKSTA_INFO_1056 {
321    BOOL wki1056_use_write_raw_data;
322}
323alias WKSTA_INFO_1056* PWKSTA_INFO_1056, LPWKSTA_INFO_1056;
324
325struct WKSTA_INFO_1057 {
326    BOOL wki1057_use_encryption;
327}
328alias WKSTA_INFO_1057* PWKSTA_INFO_1057, LPWKSTA_INFO_1057;
329
330struct WKSTA_INFO_1058 {
331    BOOL wki1058_buf_files_deny_write;
332}
333alias WKSTA_INFO_1058* PWKSTA_INFO_1058, LPWKSTA_INFO_1058;
334
335struct WKSTA_INFO_1059 {
336    BOOL wki1059_buf_read_only_files;
337}
338alias WKSTA_INFO_1059* PWKSTA_INFO_1059, LPWKSTA_INFO_1059;
339
340struct WKSTA_INFO_1060 {
341    BOOL wki1060_force_core_create_mode;
342}
343alias WKSTA_INFO_1060* PWKSTA_INFO_1060, LPWKSTA_INFO_1060;
344
345struct WKSTA_INFO_1061 {
346    BOOL wki1061_use_512_byte_max_transfer;
347}
348alias WKSTA_INFO_1061* PWKSTA_INFO_1061, LPWKSTA_INFO_1061;
349
350struct WKSTA_INFO_1062 {
351    DWORD wki1062_read_ahead_throughput;
352}
353alias WKSTA_INFO_1062* PWKSTA_INFO_1062, LPWKSTA_INFO_1062;
354
355struct WKSTA_USER_INFO_0 {
356    LPWSTR wkui0_username;
357}
358alias WKSTA_USER_INFO_0* PWKSTA_USER_INFO_0, LPWKSTA_USER_INFO_0;
359
360struct WKSTA_USER_INFO_1{
361    LPWSTR wkui1_username;
362    LPWSTR wkui1_logon_domain;
363    LPWSTR wkui1_oth_domains;
364    LPWSTR wkui1_logon_server;
365}
366alias WKSTA_USER_INFO_1* PWKSTA_USER_INFO_1, LPWKSTA_USER_INFO_1;
367
368struct WKSTA_USER_INFO_1101 {
369    LPWSTR wkui1101_oth_domains;
370}
371alias WKSTA_USER_INFO_1101* PWKSTA_USER_INFO_1101, LPWKSTA_USER_INFO_1101;
372
373struct WKSTA_TRANSPORT_INFO_0{
374    DWORD wkti0_quality_of_service;
375    DWORD wkti0_number_of_vcs;
376    LPWSTR wkti0_transport_name;
377    LPWSTR wkti0_transport_address;
378    BOOL wkti0_wan_ish;
379}
380alias WKSTA_TRANSPORT_INFO_0* PWKSTA_TRANSPORT_INFO_0, LPWKSTA_TRANSPORT_INFO_0;
381
382extern (Windows) {
383NET_API_STATUS NetWkstaGetInfo(LPWSTR,DWORD,PBYTE*);
384NET_API_STATUS NetWkstaSetInfo(LPWSTR,DWORD,PBYTE,PDWORD);
385NET_API_STATUS NetWkstaUserGetInfo(LPWSTR,DWORD,PBYTE*);
386NET_API_STATUS NetWkstaUserSetInfo(LPWSTR,DWORD,PBYTE,PDWORD);
387NET_API_STATUS NetWkstaUserEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
388NET_API_STATUS NetWkstaTransportAdd(LPWSTR,DWORD,PBYTE,PDWORD);
389NET_API_STATUS NetWkstaTransportDel(LPWSTR,LPWSTR,DWORD);
390NET_API_STATUS NetWkstaTransportEnum(LPWSTR,DWORD,PBYTE*,DWORD,PDWORD,PDWORD,PDWORD);
391}
392