1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _LMWKSTA_
7 #define _LMWKSTA_
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 #include <lmcons.h>
14 #include <lmuseflg.h>
15 
16   NET_API_STATUS WINAPI NetWkstaGetInfo(LMSTR servername,DWORD level,LPBYTE *bufptr);
17   NET_API_STATUS WINAPI NetWkstaSetInfo(LMSTR servername,DWORD level,LPBYTE buffer,LPDWORD parm_err);
18   NET_API_STATUS WINAPI NetWkstaUserGetInfo(LMSTR reserved,DWORD level,LPBYTE *bufptr);
19   NET_API_STATUS WINAPI NetWkstaUserSetInfo(LMSTR reserved,DWORD level,LPBYTE buf,LPDWORD parm_err);
20   NET_API_STATUS WINAPI NetWkstaUserEnum(LMSTR servername,DWORD level,LPBYTE *bufptr,DWORD prefmaxlen,LPDWORD entriesread,LPDWORD totalentries,LPDWORD resumehandle);
21   NET_API_STATUS WINAPI NetWkstaTransportAdd(LMSTR servername,DWORD level,LPBYTE buf,LPDWORD parm_err);
22   NET_API_STATUS WINAPI NetWkstaTransportDel(LMSTR servername,LMSTR transportname,DWORD ucond);
23   NET_API_STATUS WINAPI NetWkstaTransportEnum(LMSTR servername,DWORD level,LPBYTE *bufptr,DWORD prefmaxlen,LPDWORD entriesread,LPDWORD totalentries,LPDWORD resumehandle);
24 
25   typedef struct _WKSTA_INFO_100 {
26     DWORD wki100_platform_id;
27     LMSTR wki100_computername;
28     LMSTR wki100_langroup;
29     DWORD wki100_ver_major;
30     DWORD wki100_ver_minor;
31   } WKSTA_INFO_100,*PWKSTA_INFO_100,*LPWKSTA_INFO_100;
32 
33   typedef struct _WKSTA_INFO_101 {
34     DWORD wki101_platform_id;
35     LMSTR wki101_computername;
36     LMSTR wki101_langroup;
37     DWORD wki101_ver_major;
38     DWORD wki101_ver_minor;
39     LMSTR wki101_lanroot;
40   } WKSTA_INFO_101,*PWKSTA_INFO_101,*LPWKSTA_INFO_101;
41 
42   typedef struct _WKSTA_INFO_102 {
43     DWORD wki102_platform_id;
44     LMSTR wki102_computername;
45     LMSTR wki102_langroup;
46     DWORD wki102_ver_major;
47     DWORD wki102_ver_minor;
48     LMSTR wki102_lanroot;
49     DWORD wki102_logged_on_users;
50   } WKSTA_INFO_102,*PWKSTA_INFO_102,*LPWKSTA_INFO_102;
51 
52   typedef struct _WKSTA_INFO_302{
53     DWORD wki302_char_wait;
54     DWORD wki302_collection_time;
55     DWORD wki302_maximum_collection_count;
56     DWORD wki302_keep_conn;
57     DWORD wki302_keep_search;
58     DWORD wki302_max_cmds;
59     DWORD wki302_num_work_buf;
60     DWORD wki302_siz_work_buf;
61     DWORD wki302_max_wrk_cache;
62     DWORD wki302_sess_timeout;
63     DWORD wki302_siz_error;
64     DWORD wki302_num_alerts;
65     DWORD wki302_num_services;
66     DWORD wki302_errlog_sz;
67     DWORD wki302_print_buf_time;
68     DWORD wki302_num_char_buf;
69     DWORD wki302_siz_char_buf;
70     LMSTR wki302_wrk_heuristics;
71     DWORD wki302_mailslots;
72     DWORD wki302_num_dgram_buf;
73   } WKSTA_INFO_302,*PWKSTA_INFO_302,*LPWKSTA_INFO_302;
74 
75   typedef struct _WKSTA_INFO_402{
76     DWORD wki402_char_wait;
77     DWORD wki402_collection_time;
78     DWORD wki402_maximum_collection_count;
79     DWORD wki402_keep_conn;
80     DWORD wki402_keep_search;
81     DWORD wki402_max_cmds;
82     DWORD wki402_num_work_buf;
83     DWORD wki402_siz_work_buf;
84     DWORD wki402_max_wrk_cache;
85     DWORD wki402_sess_timeout;
86     DWORD wki402_siz_error;
87     DWORD wki402_num_alerts;
88     DWORD wki402_num_services;
89     DWORD wki402_errlog_sz;
90     DWORD wki402_print_buf_time;
91     DWORD wki402_num_char_buf;
92     DWORD wki402_siz_char_buf;
93     LMSTR wki402_wrk_heuristics;
94     DWORD wki402_mailslots;
95     DWORD wki402_num_dgram_buf;
96     DWORD wki402_max_threads;
97   } WKSTA_INFO_402,*PWKSTA_INFO_402,*LPWKSTA_INFO_402;
98 
99   typedef struct _WKSTA_INFO_502{
100     DWORD wki502_char_wait;
101     DWORD wki502_collection_time;
102     DWORD wki502_maximum_collection_count;
103     DWORD wki502_keep_conn;
104     DWORD wki502_max_cmds;
105     DWORD wki502_sess_timeout;
106     DWORD wki502_siz_char_buf;
107     DWORD wki502_max_threads;
108     DWORD wki502_lock_quota;
109     DWORD wki502_lock_increment;
110     DWORD wki502_lock_maximum;
111     DWORD wki502_pipe_increment;
112     DWORD wki502_pipe_maximum;
113     DWORD wki502_cache_file_timeout;
114     DWORD wki502_dormant_file_limit;
115     DWORD wki502_read_ahead_throughput;
116     DWORD wki502_num_mailslot_buffers;
117     DWORD wki502_num_srv_announce_buffers;
118     DWORD wki502_max_illegal_datagram_events;
119     DWORD wki502_illegal_datagram_event_reset_frequency;
120     WINBOOL wki502_log_election_packets;
121     WINBOOL wki502_use_opportunistic_locking;
122     WINBOOL wki502_use_unlock_behind;
123     WINBOOL wki502_use_close_behind;
124     WINBOOL wki502_buf_named_pipes;
125     WINBOOL wki502_use_lock_read_unlock;
126     WINBOOL wki502_utilize_nt_caching;
127     WINBOOL wki502_use_raw_read;
128     WINBOOL wki502_use_raw_write;
129     WINBOOL wki502_use_write_raw_data;
130     WINBOOL wki502_use_encryption;
131     WINBOOL wki502_buf_files_deny_write;
132     WINBOOL wki502_buf_read_only_files;
133     WINBOOL wki502_force_core_create_mode;
134     WINBOOL wki502_use_512_byte_max_transfer;
135   } WKSTA_INFO_502,*PWKSTA_INFO_502,*LPWKSTA_INFO_502;
136 
137   typedef struct _WKSTA_INFO_1010 {
138     DWORD wki1010_char_wait;
139   } WKSTA_INFO_1010,*PWKSTA_INFO_1010,*LPWKSTA_INFO_1010;
140 
141   typedef struct _WKSTA_INFO_1011 {
142     DWORD wki1011_collection_time;
143   } WKSTA_INFO_1011,*PWKSTA_INFO_1011,*LPWKSTA_INFO_1011;
144 
145   typedef struct _WKSTA_INFO_1012 {
146     DWORD wki1012_maximum_collection_count;
147   } WKSTA_INFO_1012,*PWKSTA_INFO_1012,*LPWKSTA_INFO_1012;
148 
149   typedef struct _WKSTA_INFO_1027 {
150     DWORD wki1027_errlog_sz;
151   } WKSTA_INFO_1027,*PWKSTA_INFO_1027,*LPWKSTA_INFO_1027;
152 
153   typedef struct _WKSTA_INFO_1028 {
154     DWORD wki1028_print_buf_time;
155   } WKSTA_INFO_1028,*PWKSTA_INFO_1028,*LPWKSTA_INFO_1028;
156 
157   typedef struct _WKSTA_INFO_1032 {
158     DWORD wki1032_wrk_heuristics;
159   } WKSTA_INFO_1032,*PWKSTA_INFO_1032,*LPWKSTA_INFO_1032;
160 
161   typedef struct _WKSTA_INFO_1013 {
162     DWORD wki1013_keep_conn;
163   } WKSTA_INFO_1013,*PWKSTA_INFO_1013,*LPWKSTA_INFO_1013;
164 
165   typedef struct _WKSTA_INFO_1018 {
166     DWORD wki1018_sess_timeout;
167   } WKSTA_INFO_1018,*PWKSTA_INFO_1018,*LPWKSTA_INFO_1018;
168 
169   typedef struct _WKSTA_INFO_1023 {
170     DWORD wki1023_siz_char_buf;
171   } WKSTA_INFO_1023,*PWKSTA_INFO_1023,*LPWKSTA_INFO_1023;
172 
173   typedef struct _WKSTA_INFO_1033 {
174     DWORD wki1033_max_threads;
175   } WKSTA_INFO_1033,*PWKSTA_INFO_1033,*LPWKSTA_INFO_1033;
176 
177   typedef struct _WKSTA_INFO_1041 {
178     DWORD wki1041_lock_quota;
179   } WKSTA_INFO_1041,*PWKSTA_INFO_1041,*LPWKSTA_INFO_1041;
180 
181   typedef struct _WKSTA_INFO_1042 {
182     DWORD wki1042_lock_increment;
183   } WKSTA_INFO_1042,*PWKSTA_INFO_1042,*LPWKSTA_INFO_1042;
184 
185   typedef struct _WKSTA_INFO_1043 {
186     DWORD wki1043_lock_maximum;
187   } WKSTA_INFO_1043,*PWKSTA_INFO_1043,*LPWKSTA_INFO_1043;
188 
189   typedef struct _WKSTA_INFO_1044 {
190     DWORD wki1044_pipe_increment;
191   } WKSTA_INFO_1044,*PWKSTA_INFO_1044,*LPWKSTA_INFO_1044;
192 
193   typedef struct _WKSTA_INFO_1045 {
194     DWORD wki1045_pipe_maximum;
195   } WKSTA_INFO_1045,*PWKSTA_INFO_1045,*LPWKSTA_INFO_1045;
196 
197   typedef struct _WKSTA_INFO_1046 {
198     DWORD wki1046_dormant_file_limit;
199   } WKSTA_INFO_1046,*PWKSTA_INFO_1046,*LPWKSTA_INFO_1046;
200 
201   typedef struct _WKSTA_INFO_1047 {
202     DWORD wki1047_cache_file_timeout;
203   } WKSTA_INFO_1047,*PWKSTA_INFO_1047,*LPWKSTA_INFO_1047;
204 
205   typedef struct _WKSTA_INFO_1048 {
206     WINBOOL wki1048_use_opportunistic_locking;
207   } WKSTA_INFO_1048,*PWKSTA_INFO_1048,*LPWKSTA_INFO_1048;
208 
209   typedef struct _WKSTA_INFO_1049 {
210     WINBOOL wki1049_use_unlock_behind;
211   } WKSTA_INFO_1049,*PWKSTA_INFO_1049,*LPWKSTA_INFO_1049;
212 
213   typedef struct _WKSTA_INFO_1050 {
214     WINBOOL wki1050_use_close_behind;
215   } WKSTA_INFO_1050,*PWKSTA_INFO_1050,*LPWKSTA_INFO_1050;
216 
217   typedef struct _WKSTA_INFO_1051 {
218     WINBOOL wki1051_buf_named_pipes;
219   } WKSTA_INFO_1051,*PWKSTA_INFO_1051,*LPWKSTA_INFO_1051;
220 
221   typedef struct _WKSTA_INFO_1052 {
222     WINBOOL wki1052_use_lock_read_unlock;
223   } WKSTA_INFO_1052,*PWKSTA_INFO_1052,*LPWKSTA_INFO_1052;
224 
225   typedef struct _WKSTA_INFO_1053 {
226     WINBOOL wki1053_utilize_nt_caching;
227   } WKSTA_INFO_1053,*PWKSTA_INFO_1053,*LPWKSTA_INFO_1053;
228 
229   typedef struct _WKSTA_INFO_1054 {
230     WINBOOL wki1054_use_raw_read;
231   } WKSTA_INFO_1054,*PWKSTA_INFO_1054,*LPWKSTA_INFO_1054;
232 
233   typedef struct _WKSTA_INFO_1055 {
234     WINBOOL wki1055_use_raw_write;
235   } WKSTA_INFO_1055,*PWKSTA_INFO_1055,*LPWKSTA_INFO_1055;
236 
237   typedef struct _WKSTA_INFO_1056 {
238     WINBOOL wki1056_use_write_raw_data;
239   } WKSTA_INFO_1056,*PWKSTA_INFO_1056,*LPWKSTA_INFO_1056;
240 
241   typedef struct _WKSTA_INFO_1057 {
242     WINBOOL wki1057_use_encryption;
243   } WKSTA_INFO_1057,*PWKSTA_INFO_1057,*LPWKSTA_INFO_1057;
244 
245   typedef struct _WKSTA_INFO_1058 {
246     WINBOOL wki1058_buf_files_deny_write;
247   } WKSTA_INFO_1058,*PWKSTA_INFO_1058,*LPWKSTA_INFO_1058;
248 
249   typedef struct _WKSTA_INFO_1059 {
250     WINBOOL wki1059_buf_read_only_files;
251   } WKSTA_INFO_1059,*PWKSTA_INFO_1059,*LPWKSTA_INFO_1059;
252 
253   typedef struct _WKSTA_INFO_1060 {
254     WINBOOL wki1060_force_core_create_mode;
255   } WKSTA_INFO_1060,*PWKSTA_INFO_1060,*LPWKSTA_INFO_1060;
256 
257   typedef struct _WKSTA_INFO_1061 {
258     WINBOOL wki1061_use_512_byte_max_transfer;
259   } WKSTA_INFO_1061,*PWKSTA_INFO_1061,*LPWKSTA_INFO_1061;
260 
261   typedef struct _WKSTA_INFO_1062 {
262     DWORD wki1062_read_ahead_throughput;
263   } WKSTA_INFO_1062,*PWKSTA_INFO_1062,*LPWKSTA_INFO_1062;
264 
265   typedef struct _WKSTA_USER_INFO_0 {
266     LMSTR wkui0_username;
267   } WKSTA_USER_INFO_0,*PWKSTA_USER_INFO_0,*LPWKSTA_USER_INFO_0;
268 
269   typedef struct _WKSTA_USER_INFO_1 {
270     LMSTR wkui1_username;
271     LMSTR wkui1_logon_domain;
272     LMSTR wkui1_oth_domains;
273     LMSTR wkui1_logon_server;
274   } WKSTA_USER_INFO_1,*PWKSTA_USER_INFO_1,*LPWKSTA_USER_INFO_1;
275 
276   typedef struct _WKSTA_USER_INFO_1101 {
277     LMSTR wkui1101_oth_domains;
278   } WKSTA_USER_INFO_1101,*PWKSTA_USER_INFO_1101,*LPWKSTA_USER_INFO_1101;
279 
280   typedef struct _WKSTA_TRANSPORT_INFO_0 {
281     DWORD wkti0_quality_of_service;
282     DWORD wkti0_number_of_vcs;
283     LMSTR wkti0_transport_name;
284     LMSTR wkti0_transport_address;
285     WINBOOL wkti0_wan_ish;
286   } WKSTA_TRANSPORT_INFO_0,*PWKSTA_TRANSPORT_INFO_0,*LPWKSTA_TRANSPORT_INFO_0;
287 
288 #define WKSTA_PLATFORM_ID_PARMNUM 100
289 #define WKSTA_COMPUTERNAME_PARMNUM 1
290 #define WKSTA_LANGROUP_PARMNUM 2
291 #define WKSTA_VER_MAJOR_PARMNUM 4
292 #define WKSTA_VER_MINOR_PARMNUM 5
293 #define WKSTA_LOGGED_ON_USERS_PARMNUM 6
294 #define WKSTA_LANROOT_PARMNUM 7
295 #define WKSTA_LOGON_DOMAIN_PARMNUM 8
296 #define WKSTA_LOGON_SERVER_PARMNUM 9
297 #define WKSTA_CHARWAIT_PARMNUM 10
298 #define WKSTA_CHARTIME_PARMNUM 11
299 #define WKSTA_CHARCOUNT_PARMNUM 12
300 #define WKSTA_KEEPCONN_PARMNUM 13
301 #define WKSTA_KEEPSEARCH_PARMNUM 14
302 #define WKSTA_MAXCMDS_PARMNUM 15
303 #define WKSTA_NUMWORKBUF_PARMNUM 16
304 #define WKSTA_MAXWRKCACHE_PARMNUM 17
305 #define WKSTA_SESSTIMEOUT_PARMNUM 18
306 #define WKSTA_SIZERROR_PARMNUM 19
307 #define WKSTA_NUMALERTS_PARMNUM 20
308 #define WKSTA_NUMSERVICES_PARMNUM 21
309 #define WKSTA_NUMCHARBUF_PARMNUM 22
310 #define WKSTA_SIZCHARBUF_PARMNUM 23
311 #define WKSTA_ERRLOGSZ_PARMNUM 27
312 #define WKSTA_PRINTBUFTIME_PARMNUM 28
313 #define WKSTA_SIZWORKBUF_PARMNUM 29
314 #define WKSTA_MAILSLOTS_PARMNUM 30
315 #define WKSTA_NUMDGRAMBUF_PARMNUM 31
316 #define WKSTA_WRKHEURISTICS_PARMNUM 32
317 #define WKSTA_MAXTHREADS_PARMNUM 33
318 #define WKSTA_LOCKQUOTA_PARMNUM 41
319 #define WKSTA_LOCKINCREMENT_PARMNUM 42
320 #define WKSTA_LOCKMAXIMUM_PARMNUM 43
321 #define WKSTA_PIPEINCREMENT_PARMNUM 44
322 #define WKSTA_PIPEMAXIMUM_PARMNUM 45
323 #define WKSTA_DORMANTFILELIMIT_PARMNUM 46
324 #define WKSTA_CACHEFILETIMEOUT_PARMNUM 47
325 #define WKSTA_USEOPPORTUNISTICLOCKING_PARMNUM 48
326 #define WKSTA_USEUNLOCKBEHIND_PARMNUM 49
327 #define WKSTA_USECLOSEBEHIND_PARMNUM 50
328 #define WKSTA_BUFFERNAMEDPIPES_PARMNUM 51
329 #define WKSTA_USELOCKANDREADANDUNLOCK_PARMNUM 52
330 #define WKSTA_UTILIZENTCACHING_PARMNUM 53
331 #define WKSTA_USERAWREAD_PARMNUM 54
332 #define WKSTA_USERAWWRITE_PARMNUM 55
333 #define WKSTA_USEWRITERAWWITHDATA_PARMNUM 56
334 #define WKSTA_USEENCRYPTION_PARMNUM 57
335 #define WKSTA_BUFFILESWITHDENYWRITE_PARMNUM 58
336 #define WKSTA_BUFFERREADONLYFILES_PARMNUM 59
337 #define WKSTA_FORCECORECREATEMODE_PARMNUM 60
338 #define WKSTA_USE512BYTESMAXTRANSFER_PARMNUM 61
339 #define WKSTA_READAHEADTHRUPUT_PARMNUM 62
340 
341 #define WKSTA_OTH_DOMAINS_PARMNUM 101
342 
343 #define TRANSPORT_QUALITYOFSERVICE_PARMNUM 201
344 #define TRANSPORT_NAME_PARMNUM 202
345 
346 #ifdef __cplusplus
347 }
348 #endif
349 #endif
350