// 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 //! This file contains structures, function prototypes, and definitions for the NetUse API use shared::lmcons::{LMSTR, NET_API_STATUS}; use shared::minwindef::{DWORD, LPBYTE, LPDWORD, PBYTE, ULONG}; use um::winnt::LPWSTR; extern "system" { pub fn NetUseAdd( servername: LPWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD, ) -> NET_API_STATUS; pub fn NetUseDel( UncServerName: LMSTR, UseName: LMSTR, ForceCond: DWORD, ) -> NET_API_STATUS; pub fn NetUseEnum( UncServerName: LMSTR, Level: DWORD, BufPtr: *mut LPBYTE, PreferedMaximumSize: DWORD, EntriesRead: LPDWORD, TotalEntries: LPDWORD, ResumeHandle: LPDWORD, ) -> NET_API_STATUS; pub fn NetUseGetInfo( UncServerName: LMSTR, UseName: LMSTR, level: DWORD, bufptr: *mut LPBYTE, ) -> NET_API_STATUS; } STRUCT!{struct USE_INFO_0 { ui0_local: LMSTR, ui0_remote: LMSTR, }} pub type PUSE_INFO_0 = *mut USE_INFO_0; pub type LPUSE_INFO_0 = *mut USE_INFO_0; STRUCT!{struct USE_INFO_1 { ui1_local: LMSTR, ui1_remote: LMSTR, ui1_password: LMSTR, ui1_status: DWORD, ui1_asg_type: DWORD, ui1_refcount: DWORD, ui1_usecount: DWORD, }} pub type PUSE_INFO_1 = *mut USE_INFO_1; pub type LPUSE_INFO_1 = *mut USE_INFO_1; STRUCT!{struct USE_INFO_2 { ui2_local: LMSTR, ui2_remote: LMSTR, ui2_password: LMSTR, ui2_status: DWORD, ui2_asg_type: DWORD, ui2_refcount: DWORD, ui2_usecount: DWORD, ui2_username: LMSTR, ui2_domainname: LMSTR, }} pub type PUSE_INFO_2 = *mut USE_INFO_2; pub type LPUSE_INFO_2 = *mut USE_INFO_2; STRUCT!{struct USE_INFO_3 { ui3_ui2: USE_INFO_2, ui3_flags: ULONG, }} pub type PUSE_INFO_3 = *mut USE_INFO_3; STRUCT!{struct USE_INFO_4 { ui4_ui3: USE_INFO_3, ui4_auth_identity_length: DWORD, ui4_auth_identity: PBYTE, }} pub type PUSE_INFO_4 = *mut USE_INFO_4; pub type LPUSE_INFO_4 = *mut USE_INFO_4; pub const USE_LOCAL_PARMNUM: DWORD = 1; pub const USE_REMOTE_PARMNUM: DWORD = 2; pub const USE_PASSWORD_PARMNUM: DWORD = 3; pub const USE_ASGTYPE_PARMNUM: DWORD = 4; pub const USE_USERNAME_PARMNUM: DWORD = 5; pub const USE_DOMAINNAME_PARMNUM: DWORD = 6; pub const USE_OK: DWORD = 0; pub const USE_PAUSED: DWORD = 1; pub const USE_SESSLOST: DWORD = 2; pub const USE_DISCONN: DWORD = 2; pub const USE_NETERR: DWORD = 3; pub const USE_CONN: DWORD = 4; pub const USE_RECONN: DWORD = 5; pub const USE_WILDCARD: DWORD = -1i32 as u32; pub const USE_DISKDEV: DWORD = 0; pub const USE_SPOOLDEV: DWORD = 1; pub const USE_CHARDEV: DWORD = 2; pub const USE_IPC: DWORD = 3; pub const CREATE_NO_CONNECT: ULONG = 0x1; pub const CREATE_BYPASS_CSC: ULONG = 0x2; pub const CREATE_CRED_RESET: ULONG = 0x4; pub const USE_DEFAULT_CREDENTIALS: ULONG = 0x4;