// Licensed under the Apache License, Version 2.0 // or the MIT license // , at your option. // All files in the project carrying such notice may not be copied, modified, or distributed // except according to those terms use shared::lmcons::{LMSTR, NET_API_STATUS}; use shared::minwindef::{BOOL, DWORD, LPBYTE, LPDWORD}; use um::winnt::LPCWSTR; extern "system" { pub fn NetWkstaGetInfo( servername: LMSTR, level: DWORD, bufptr: *mut LPBYTE, ) -> NET_API_STATUS; pub fn NetWkstaSetInfo( servername: LMSTR, level: DWORD, buffer: LPBYTE, parm_err: LPDWORD, ) -> NET_API_STATUS; pub fn NetWkstaUserGetInfo( reserved: LMSTR, level: DWORD, bufptr: *mut LPBYTE, ) -> NET_API_STATUS; pub fn NetWkstaUserSetInfo( reserved: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD, ) -> NET_API_STATUS; pub fn NetWkstaUserEnum( servername: LMSTR, level: DWORD, bufptr: *mut LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: LPDWORD, ) -> NET_API_STATUS; pub fn NetWkstaTransportAdd( servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD, ) -> NET_API_STATUS; pub fn NetWkstaTransportDel( servername: LMSTR, transportname: LMSTR, ucond: DWORD, ) -> NET_API_STATUS; pub fn NetWkstaTransportEnum( servername: LPCWSTR, level: DWORD, bufptr: *mut LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: LPDWORD, ) -> NET_API_STATUS; } STRUCT!{struct WKSTA_INFO_100 { wki100_platform_id: DWORD, wki100_computername: LMSTR, wki100_langroup: LMSTR, wki100_ver_major: DWORD, wki100_ver_minor: DWORD, }} pub type PWKSTA_INFO_100 = *mut WKSTA_INFO_100; pub type LPWKSTA_INFO_100 = *mut WKSTA_INFO_100; STRUCT!{struct WKSTA_INFO_101 { wki101_platform_id: DWORD, wki101_computername: LMSTR, wki101_langroup: LMSTR, wki101_ver_major: DWORD, wki101_ver_minor: DWORD, wki101_lanroot: LMSTR, }} pub type PWKSTA_INFO_101 = *mut WKSTA_INFO_101; pub type LPWKSTA_INFO_101 = *mut WKSTA_INFO_101; STRUCT!{struct WKSTA_INFO_102 { wki102_platform_id: DWORD, wki102_computername: LMSTR, wki102_langroup: LMSTR, wki102_ver_major: DWORD, wki102_ver_minor: DWORD, wki102_lanroot: LMSTR, wki102_logged_on_users: DWORD, }} pub type PWKSTA_INFO_102 = *mut WKSTA_INFO_102; pub type LPWKSTA_INFO_102 = *mut WKSTA_INFO_102; STRUCT!{struct WKSTA_INFO_302 { wki302_char_wait: DWORD, wki302_collection_time: DWORD, wki302_maximum_collection_count: DWORD, wki302_keep_conn: DWORD, wki302_keep_search: DWORD, wki302_max_cmds: DWORD, wki302_num_work_buf: DWORD, wki302_siz_work_buf: DWORD, wki302_max_wrk_cache: DWORD, wki302_sess_timeout: DWORD, wki302_siz_error: DWORD, wki302_num_alerts: DWORD, wki302_num_services: DWORD, wki302_errlog_sz: DWORD, wki302_print_buf_time: DWORD, wki302_num_char_buf: DWORD, wki302_siz_char_buf: DWORD, wki302_wrk_heuristics: LMSTR, wki302_mailslots: DWORD, wki302_num_dgram_buf: DWORD, }} pub type PWKSTA_INFO_302 = *mut WKSTA_INFO_302; pub type LPWKSTA_INFO_302 = *mut WKSTA_INFO_302; STRUCT!{struct WKSTA_INFO_402 { wki402_char_wait: DWORD, wki402_collection_time: DWORD, wki402_maximum_collection_count: DWORD, wki402_keep_conn: DWORD, wki402_keep_search: DWORD, wki402_max_cmds: DWORD, wki402_num_work_buf: DWORD, wki402_siz_work_buf: DWORD, wki402_max_wrk_cache: DWORD, wki402_sess_timeout: DWORD, wki402_siz_error: DWORD, wki402_num_alerts: DWORD, wki402_num_services: DWORD, wki402_errlog_sz: DWORD, wki402_print_buf_time: DWORD, wki402_num_char_buf: DWORD, wki402_siz_char_buf: DWORD, wki402_wrk_heuristics: LMSTR, wki402_mailslots: DWORD, wki402_num_dgram_buf: DWORD, wki402_max_threads: DWORD, }} pub type PWKSTA_INFO_402 = *mut WKSTA_INFO_402; pub type LPWKSTA_INFO_402 = *mut WKSTA_INFO_402; STRUCT!{struct WKSTA_INFO_502 { wki502_char_wait: DWORD, wki502_collection_time: DWORD, wki502_maximum_collection_count: DWORD, wki502_keep_conn: DWORD, wki502_max_cmds: DWORD, wki502_sess_timeout: DWORD, wki502_siz_char_buf: DWORD, wki502_max_threads: DWORD, wki502_lock_quota: DWORD, wki502_lock_increment: DWORD, wki502_lock_maximum: DWORD, wki502_pipe_increment: DWORD, wki502_pipe_maximum: DWORD, wki502_cache_file_timeout: DWORD, wki502_dormant_file_limit: DWORD, wki502_read_ahead_throughput: DWORD, wki502_num_mailslot_buffers: DWORD, wki502_num_srv_announce_buffers: DWORD, wki502_max_illegal_datagram_events: DWORD, wki502_illegal_datagram_event_reset_frequency: DWORD, wki502_log_election_packets: BOOL, wki502_use_opportunistic_locking: BOOL, wki502_use_unlock_behind: BOOL, wki502_use_close_behind: BOOL, wki502_buf_named_pipes: BOOL, wki502_use_lock_read_unlock: BOOL, wki502_utilize_nt_caching: BOOL, wki502_use_raw_read: BOOL, wki502_use_raw_write: BOOL, wki502_use_write_raw_data: BOOL, wki502_use_encryption: BOOL, wki502_buf_files_deny_write: BOOL, wki502_buf_read_only_files: BOOL, wki502_force_core_create_mode: BOOL, wki502_use_512_byte_max_transfer: BOOL, }} pub type PWKSTA_INFO_502 = *mut WKSTA_INFO_502; pub type LPWKSTA_INFO_502 = *mut WKSTA_INFO_502; STRUCT!{struct WKSTA_INFO_1010 { wki1010_char_wait: DWORD, }} pub type PWKSTA_INFO_1010 = *mut WKSTA_INFO_1010; pub type LPWKSTA_INFO_1010 = *mut WKSTA_INFO_1010; STRUCT!{struct WKSTA_INFO_1011 { wki1011_collection_time: DWORD, }} pub type PWKSTA_INFO_1011 = *mut WKSTA_INFO_1011; pub type LPWKSTA_INFO_1011 = *mut WKSTA_INFO_1011; STRUCT!{struct WKSTA_INFO_1012 { wki1012_maximum_collection_count: DWORD, }} pub type PWKSTA_INFO_1012 = *mut WKSTA_INFO_1012; pub type LPWKSTA_INFO_1012 = *mut WKSTA_INFO_1012; STRUCT!{struct WKSTA_INFO_1027 { wki1027_errlog_sz: DWORD, }} pub type PWKSTA_INFO_1027 = *mut WKSTA_INFO_1027; pub type LPWKSTA_INFO_1027 = *mut WKSTA_INFO_1027; STRUCT!{struct WKSTA_INFO_1028 { wki1028_print_buf_time: DWORD, }} pub type PWKSTA_INFO_1028 = *mut WKSTA_INFO_1028; pub type LPWKSTA_INFO_1028 = *mut WKSTA_INFO_1028; STRUCT!{struct WKSTA_INFO_1032 { wki1032_wrk_heuristics: DWORD, }} pub type PWKSTA_INFO_1032 = *mut WKSTA_INFO_1032; pub type LPWKSTA_INFO_1032 = *mut WKSTA_INFO_1032; STRUCT!{struct WKSTA_INFO_1013 { wki1013_keep_conn: DWORD, }} pub type PWKSTA_INFO_1013 = *mut WKSTA_INFO_1013; pub type LPWKSTA_INFO_1013 = *mut WKSTA_INFO_1013; STRUCT!{struct WKSTA_INFO_1018 { wki1018_sess_timeout: DWORD, }} pub type PWKSTA_INFO_1018 = *mut WKSTA_INFO_1018; pub type LPWKSTA_INFO_1018 = *mut WKSTA_INFO_1018; STRUCT!{struct WKSTA_INFO_1023 { wki1023_siz_char_buf: DWORD, }} pub type PWKSTA_INFO_1023 = *mut WKSTA_INFO_1023; pub type LPWKSTA_INFO_1023 = *mut WKSTA_INFO_1023; STRUCT!{struct WKSTA_INFO_1033 { wki1033_max_threads: DWORD, }} pub type PWKSTA_INFO_1033 = *mut WKSTA_INFO_1033; pub type LPWKSTA_INFO_1033 = *mut WKSTA_INFO_1033; STRUCT!{struct WKSTA_INFO_1041 { wki1041_lock_quota: DWORD, }} pub type PWKSTA_INFO_1041 = *mut WKSTA_INFO_1041; pub type LPWKSTA_INFO_1041 = *mut WKSTA_INFO_1041; STRUCT!{struct WKSTA_INFO_1042 { wki1042_lock_increment: DWORD, }} pub type PWKSTA_INFO_1042 = *mut WKSTA_INFO_1042; pub type LPWKSTA_INFO_1042 = *mut WKSTA_INFO_1042; STRUCT!{struct WKSTA_INFO_1043 { wki1043_lock_maximum: DWORD, }} pub type PWKSTA_INFO_1043 = *mut WKSTA_INFO_1043; pub type LPWKSTA_INFO_1043 = *mut WKSTA_INFO_1043; STRUCT!{struct WKSTA_INFO_1044 { wki1044_pipe_increment: DWORD, }} pub type PWKSTA_INFO_1044 = *mut WKSTA_INFO_1044; pub type LPWKSTA_INFO_1044 = *mut WKSTA_INFO_1044; STRUCT!{struct WKSTA_INFO_1045 { wki1045_pipe_maximum: DWORD, }} pub type PWKSTA_INFO_1045 = *mut WKSTA_INFO_1045; pub type LPWKSTA_INFO_1045 = *mut WKSTA_INFO_1045; STRUCT!{struct WKSTA_INFO_1046 { wki1046_dormant_file_limit: DWORD, }} pub type PWKSTA_INFO_1046 = *mut WKSTA_INFO_1046; pub type LPWKSTA_INFO_1046 = *mut WKSTA_INFO_1046; STRUCT!{struct WKSTA_INFO_1047 { wki1047_cache_file_timeout: DWORD, }} pub type PWKSTA_INFO_1047 = *mut WKSTA_INFO_1047; pub type LPWKSTA_INFO_1047 = *mut WKSTA_INFO_1047; STRUCT!{struct WKSTA_INFO_1048 { wki1048_use_opportunistic_locking: BOOL, }} pub type PWKSTA_INFO_1048 = *mut WKSTA_INFO_1048; pub type LPWKSTA_INFO_1048 = *mut WKSTA_INFO_1048; STRUCT!{struct WKSTA_INFO_1049 { wki1049_use_unlock_behind: BOOL, }} pub type PWKSTA_INFO_1049 = *mut WKSTA_INFO_1049; pub type LPWKSTA_INFO_1049 = *mut WKSTA_INFO_1049; STRUCT!{struct WKSTA_INFO_1050 { wki1050_use_close_behind: BOOL, }} pub type PWKSTA_INFO_1050 = *mut WKSTA_INFO_1050; pub type LPWKSTA_INFO_1050 = *mut WKSTA_INFO_1050; STRUCT!{struct WKSTA_INFO_1051 { wki1051_buf_named_pipes: BOOL, }} pub type PWKSTA_INFO_1051 = *mut WKSTA_INFO_1051; pub type LPWKSTA_INFO_1051 = *mut WKSTA_INFO_1051; STRUCT!{struct WKSTA_INFO_1052 { wki1052_use_lock_read_unlock: BOOL, }} pub type PWKSTA_INFO_1052 = *mut WKSTA_INFO_1052; pub type LPWKSTA_INFO_1052 = *mut WKSTA_INFO_1052; STRUCT!{struct WKSTA_INFO_1053 { wki1053_utilize_nt_caching: BOOL, }} pub type PWKSTA_INFO_1053 = *mut WKSTA_INFO_1053; pub type LPWKSTA_INFO_1053 = *mut WKSTA_INFO_1053; STRUCT!{struct WKSTA_INFO_1054 { wki1054_use_raw_read: BOOL, }} pub type PWKSTA_INFO_1054 = *mut WKSTA_INFO_1054; pub type LPWKSTA_INFO_1054 = *mut WKSTA_INFO_1054; STRUCT!{struct WKSTA_INFO_1055 { wki1055_use_raw_write: BOOL, }} pub type PWKSTA_INFO_1055 = *mut WKSTA_INFO_1055; pub type LPWKSTA_INFO_1055 = *mut WKSTA_INFO_1055; STRUCT!{struct WKSTA_INFO_1056 { wki1056_use_write_raw_data: BOOL, }} pub type PWKSTA_INFO_1056 = *mut WKSTA_INFO_1056; pub type LPWKSTA_INFO_1056 = *mut WKSTA_INFO_1056; STRUCT!{struct WKSTA_INFO_1057 { wki1057_use_encryption: BOOL, }} pub type PWKSTA_INFO_1057 = *mut WKSTA_INFO_1057; pub type LPWKSTA_INFO_1057 = *mut WKSTA_INFO_1057; STRUCT!{struct WKSTA_INFO_1058 { wki1058_buf_files_deny_write: BOOL, }} pub type PWKSTA_INFO_1058 = *mut WKSTA_INFO_1058; pub type LPWKSTA_INFO_1058 = *mut WKSTA_INFO_1058; STRUCT!{struct WKSTA_INFO_1059 { wki1059_buf_read_only_files: BOOL, }} pub type PWKSTA_INFO_1059 = *mut WKSTA_INFO_1059; pub type LPWKSTA_INFO_1059 = *mut WKSTA_INFO_1059; STRUCT!{struct WKSTA_INFO_1060 { wki1060_force_core_create_mode: BOOL, }} pub type PWKSTA_INFO_1060 = *mut WKSTA_INFO_1060; pub type LPWKSTA_INFO_1060 = *mut WKSTA_INFO_1060; STRUCT!{struct WKSTA_INFO_1061 { wki1061_use_512_byte_max_transfer: BOOL, }} pub type PWKSTA_INFO_1061 = *mut WKSTA_INFO_1061; pub type LPWKSTA_INFO_1061 = *mut WKSTA_INFO_1061; STRUCT!{struct WKSTA_INFO_1062 { wki1062_read_ahead_throughput: DWORD, }} pub type PWKSTA_INFO_1062 = *mut WKSTA_INFO_1062; pub type LPWKSTA_INFO_1062 = *mut WKSTA_INFO_1062; STRUCT!{struct WKSTA_USER_INFO_0 { wkui0_username: LMSTR, }} pub type PWKSTA_USER_INFO_0 = *mut WKSTA_USER_INFO_0; pub type LPWKSTA_USER_INFO_0 = *mut WKSTA_USER_INFO_0; STRUCT!{struct WKSTA_USER_INFO_1 { wkui1_username: LMSTR, wkui1_logon_domain: LMSTR, wkui1_oth_domains: LMSTR, wkui1_logon_server: LMSTR, }} pub type PWKSTA_USER_INFO_1 = *mut WKSTA_USER_INFO_1; pub type LPWKSTA_USER_INFO_1 = *mut WKSTA_USER_INFO_1; STRUCT!{struct WKSTA_USER_INFO_1101 { wkui1101_oth_domains: LMSTR, }} pub type PWKSTA_USER_INFO_1101 = *mut WKSTA_USER_INFO_1101; pub type LPWKSTA_USER_INFO_1101 = *mut WKSTA_USER_INFO_1101; STRUCT!{struct WKSTA_TRANSPORT_INFO_0 { wkti0_quality_of_service: DWORD, wkti0_number_of_vcs: DWORD, wkti0_transport_name: LMSTR, wkti0_transport_address: LMSTR, wkti0_wan_ish: BOOL, }} pub type PWKSTA_TRANSPORT_INFO_0 = *mut WKSTA_TRANSPORT_INFO_0; pub type LPWKSTA_TRANSPORT_INFO_0 = *mut WKSTA_TRANSPORT_INFO_0; pub const WKSTA_PLATFORM_ID_PARMNUM: DWORD = 100; pub const WKSTA_COMPUTERNAME_PARMNUM: DWORD = 1; pub const WKSTA_LANGROUP_PARMNUM: DWORD = 2; pub const WKSTA_VER_MAJOR_PARMNUM: DWORD = 4; pub const WKSTA_VER_MINOR_PARMNUM: DWORD = 5; pub const WKSTA_LOGGED_ON_USERS_PARMNUM: DWORD = 6; pub const WKSTA_LANROOT_PARMNUM: DWORD = 7; pub const WKSTA_LOGON_DOMAIN_PARMNUM: DWORD = 8; pub const WKSTA_LOGON_SERVER_PARMNUM: DWORD = 9; pub const WKSTA_CHARWAIT_PARMNUM: DWORD = 10; pub const WKSTA_CHARTIME_PARMNUM: DWORD = 11; pub const WKSTA_CHARCOUNT_PARMNUM: DWORD = 12; pub const WKSTA_KEEPCONN_PARMNUM: DWORD = 13; pub const WKSTA_KEEPSEARCH_PARMNUM: DWORD = 14; pub const WKSTA_MAXCMDS_PARMNUM: DWORD = 15; pub const WKSTA_NUMWORKBUF_PARMNUM: DWORD = 16; pub const WKSTA_MAXWRKCACHE_PARMNUM: DWORD = 17; pub const WKSTA_SESSTIMEOUT_PARMNUM: DWORD = 18; pub const WKSTA_SIZERROR_PARMNUM: DWORD = 19; pub const WKSTA_NUMALERTS_PARMNUM: DWORD = 20; pub const WKSTA_NUMSERVICES_PARMNUM: DWORD = 21; pub const WKSTA_NUMCHARBUF_PARMNUM: DWORD = 22; pub const WKSTA_SIZCHARBUF_PARMNUM: DWORD = 23; pub const WKSTA_ERRLOGSZ_PARMNUM: DWORD = 27; pub const WKSTA_PRINTBUFTIME_PARMNUM: DWORD = 28; pub const WKSTA_SIZWORKBUF_PARMNUM: DWORD = 29; pub const WKSTA_MAILSLOTS_PARMNUM: DWORD = 30; pub const WKSTA_NUMDGRAMBUF_PARMNUM: DWORD = 31; pub const WKSTA_WRKHEURISTICS_PARMNUM: DWORD = 32; pub const WKSTA_MAXTHREADS_PARMNUM: DWORD = 33; pub const WKSTA_LOCKQUOTA_PARMNUM: DWORD = 41; pub const WKSTA_LOCKINCREMENT_PARMNUM: DWORD = 42; pub const WKSTA_LOCKMAXIMUM_PARMNUM: DWORD = 43; pub const WKSTA_PIPEINCREMENT_PARMNUM: DWORD = 44; pub const WKSTA_PIPEMAXIMUM_PARMNUM: DWORD = 45; pub const WKSTA_DORMANTFILELIMIT_PARMNUM: DWORD = 46; pub const WKSTA_CACHEFILETIMEOUT_PARMNUM: DWORD = 47; pub const WKSTA_USEOPPORTUNISTICLOCKING_PARMNUM: DWORD = 48; pub const WKSTA_USEUNLOCKBEHIND_PARMNUM: DWORD = 49; pub const WKSTA_USECLOSEBEHIND_PARMNUM: DWORD = 50; pub const WKSTA_BUFFERNAMEDPIPES_PARMNUM: DWORD = 51; pub const WKSTA_USELOCKANDREADANDUNLOCK_PARMNUM: DWORD = 52; pub const WKSTA_UTILIZENTCACHING_PARMNUM: DWORD = 53; pub const WKSTA_USERAWREAD_PARMNUM: DWORD = 54; pub const WKSTA_USERAWWRITE_PARMNUM: DWORD = 55; pub const WKSTA_USEWRITERAWWITHDATA_PARMNUM: DWORD = 56; pub const WKSTA_USEENCRYPTION_PARMNUM: DWORD = 57; pub const WKSTA_BUFFILESWITHDENYWRITE_PARMNUM: DWORD = 58; pub const WKSTA_BUFFERREADONLYFILES_PARMNUM: DWORD = 59; pub const WKSTA_FORCECORECREATEMODE_PARMNUM: DWORD = 60; pub const WKSTA_USE512BYTESMAXTRANSFER_PARMNUM: DWORD = 61; pub const WKSTA_READAHEADTHRUPUT_PARMNUM: DWORD = 62; pub const WKSTA_OTH_DOMAINS_PARMNUM: DWORD = 101; pub const TRANSPORT_QUALITYOFSERVICE_PARMNUM: DWORD = 201; pub const TRANSPORT_NAME_PARMNUM: DWORD = 202;