winapi_ui_automation/um/
lmwksta.rs

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