Source code
Revision control
Copy as Markdown
Other Tools
#[cfg(feature = "Win32_Foundation")]
::windows_targets::link!("netapi32.dll" "system" #[doc = "Required features: `\"Win32_Foundation\"`"] fn Netbios(pncb : *mut NCB) -> u8);
pub const ALL_TRANSPORTS: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("M\u{0}\u{0}\u{0}");
pub const ASYNCH: u32 = 128u32;
pub const CALL_PENDING: u32 = 2u32;
pub const DEREGISTERED: u32 = 5u32;
pub const DUPLICATE: u32 = 6u32;
pub const DUPLICATE_DEREG: u32 = 7u32;
pub const GROUP_NAME: u32 = 128u32;
pub const HANGUP_COMPLETE: u32 = 5u32;
pub const HANGUP_PENDING: u32 = 4u32;
pub const LISTEN_OUTSTANDING: u32 = 1u32;
pub const MAX_LANA: u32 = 254u32;
pub const MS_NBF: ::windows_sys::core::PCSTR = ::windows_sys::core::s!("MNBF");
pub const NAME_FLAGS_MASK: u32 = 135u32;
pub const NCBACTION: u32 = 119u32;
pub const NCBADDGRNAME: u32 = 54u32;
pub const NCBADDNAME: u32 = 48u32;
pub const NCBASTAT: u32 = 51u32;
pub const NCBCALL: u32 = 16u32;
pub const NCBCANCEL: u32 = 53u32;
pub const NCBCHAINSEND: u32 = 23u32;
pub const NCBCHAINSENDNA: u32 = 114u32;
pub const NCBDELNAME: u32 = 49u32;
pub const NCBDGRECV: u32 = 33u32;
pub const NCBDGRECVBC: u32 = 35u32;
pub const NCBDGSEND: u32 = 32u32;
pub const NCBDGSENDBC: u32 = 34u32;
pub const NCBENUM: u32 = 55u32;
pub const NCBFINDNAME: u32 = 120u32;
pub const NCBHANGUP: u32 = 18u32;
pub const NCBLANSTALERT: u32 = 115u32;
pub const NCBLISTEN: u32 = 17u32;
pub const NCBNAMSZ: u32 = 16u32;
pub const NCBRECV: u32 = 21u32;
pub const NCBRECVANY: u32 = 22u32;
pub const NCBRESET: u32 = 50u32;
pub const NCBSEND: u32 = 20u32;
pub const NCBSENDNA: u32 = 113u32;
pub const NCBSSTAT: u32 = 52u32;
pub const NCBTRACE: u32 = 121u32;
pub const NCBUNLINK: u32 = 112u32;
pub const NRC_ACTSES: u32 = 15u32;
pub const NRC_BADDR: u32 = 7u32;
pub const NRC_BRIDGE: u32 = 35u32;
pub const NRC_BUFLEN: u32 = 1u32;
pub const NRC_CANCEL: u32 = 38u32;
pub const NRC_CANOCCR: u32 = 36u32;
pub const NRC_CMDCAN: u32 = 11u32;
pub const NRC_CMDTMO: u32 = 5u32;
pub const NRC_DUPENV: u32 = 48u32;
pub const NRC_DUPNAME: u32 = 13u32;
pub const NRC_ENVNOTDEF: u32 = 52u32;
pub const NRC_GOODRET: u32 = 0u32;
pub const NRC_IFBUSY: u32 = 33u32;
pub const NRC_ILLCMD: u32 = 3u32;
pub const NRC_ILLNN: u32 = 19u32;
pub const NRC_INCOMP: u32 = 6u32;
pub const NRC_INUSE: u32 = 22u32;
pub const NRC_INVADDRESS: u32 = 57u32;
pub const NRC_INVDDID: u32 = 59u32;
pub const NRC_LOCKFAIL: u32 = 60u32;
pub const NRC_LOCTFUL: u32 = 17u32;
pub const NRC_MAXAPPS: u32 = 54u32;
pub const NRC_NAMCONF: u32 = 25u32;
pub const NRC_NAMERR: u32 = 23u32;
pub const NRC_NAMTFUL: u32 = 14u32;
pub const NRC_NOCALL: u32 = 20u32;
pub const NRC_NORES: u32 = 9u32;
pub const NRC_NORESOURCES: u32 = 56u32;
pub const NRC_NOSAPS: u32 = 55u32;
pub const NRC_NOWILD: u32 = 21u32;
pub const NRC_OPENERR: u32 = 63u32;
pub const NRC_OSRESNOTAV: u32 = 53u32;
pub const NRC_PENDING: u32 = 255u32;
pub const NRC_REMTFUL: u32 = 18u32;
pub const NRC_SABORT: u32 = 24u32;
pub const NRC_SCLOSED: u32 = 10u32;
pub const NRC_SNUMOUT: u32 = 8u32;
pub const NRC_SYSTEM: u32 = 64u32;
pub const NRC_TOOMANY: u32 = 34u32;
pub const REGISTERED: u32 = 4u32;
pub const REGISTERING: u32 = 0u32;
pub const SESSION_ABORTED: u32 = 6u32;
pub const SESSION_ESTABLISHED: u32 = 3u32;
pub const UNIQUE_NAME: u32 = 0u32;
#[repr(C)]
pub struct ACTION_HEADER {
pub transport_id: u32,
pub action_code: u16,
pub reserved: u16,
}
impl ::core::marker::Copy for ACTION_HEADER {}
impl ::core::clone::Clone for ACTION_HEADER {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
pub struct ADAPTER_STATUS {
pub adapter_address: [u8; 6],
pub rev_major: u8,
pub reserved0: u8,
pub adapter_type: u8,
pub rev_minor: u8,
pub duration: u16,
pub frmr_recv: u16,
pub frmr_xmit: u16,
pub iframe_recv_err: u16,
pub xmit_aborts: u16,
pub xmit_success: u32,
pub recv_success: u32,
pub iframe_xmit_err: u16,
pub recv_buff_unavail: u16,
pub t1_timeouts: u16,
pub ti_timeouts: u16,
pub reserved1: u32,
pub free_ncbs: u16,
pub max_cfg_ncbs: u16,
pub max_ncbs: u16,
pub xmit_buf_unavail: u16,
pub max_dgram_size: u16,
pub pending_sess: u16,
pub max_cfg_sess: u16,
pub max_sess: u16,
pub max_sess_pkt_size: u16,
pub name_count: u16,
}
impl ::core::marker::Copy for ADAPTER_STATUS {}
impl ::core::clone::Clone for ADAPTER_STATUS {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
pub struct FIND_NAME_BUFFER {
pub length: u8,
pub access_control: u8,
pub frame_control: u8,
pub destination_addr: [u8; 6],
pub source_addr: [u8; 6],
pub routing_info: [u8; 18],
}
impl ::core::marker::Copy for FIND_NAME_BUFFER {}
impl ::core::clone::Clone for FIND_NAME_BUFFER {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
pub struct FIND_NAME_HEADER {
pub node_count: u16,
pub reserved: u8,
pub unique_group: u8,
}
impl ::core::marker::Copy for FIND_NAME_HEADER {}
impl ::core::clone::Clone for FIND_NAME_HEADER {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
pub struct LANA_ENUM {
pub length: u8,
pub lana: [u8; 255],
}
impl ::core::marker::Copy for LANA_ENUM {}
impl ::core::clone::Clone for LANA_ENUM {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
pub struct NAME_BUFFER {
pub name: [u8; 16],
pub name_num: u8,
pub name_flags: u8,
}
impl ::core::marker::Copy for NAME_BUFFER {}
impl ::core::clone::Clone for NAME_BUFFER {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_Foundation")]
pub struct NCB {
pub ncb_command: u8,
pub ncb_retcode: u8,
pub ncb_lsn: u8,
pub ncb_num: u8,
pub ncb_buffer: *mut u8,
pub ncb_length: u16,
pub ncb_callname: [u8; 16],
pub ncb_name: [u8; 16],
pub ncb_rto: u8,
pub ncb_sto: u8,
pub ncb_post: isize,
pub ncb_lana_num: u8,
pub ncb_cmd_cplt: u8,
pub ncb_reserve: [u8; 18],
pub ncb_event: super::super::Foundation::HANDLE,
}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for NCB {}
#[cfg(any(target_arch = "aarch64", target_arch = "x86_64"))]
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for NCB {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
#[doc = "Required features: `\"Win32_Foundation\"`"]
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
pub struct NCB {
pub ncb_command: u8,
pub ncb_retcode: u8,
pub ncb_lsn: u8,
pub ncb_num: u8,
pub ncb_buffer: *mut u8,
pub ncb_length: u16,
pub ncb_callname: [u8; 16],
pub ncb_name: [u8; 16],
pub ncb_rto: u8,
pub ncb_sto: u8,
pub ncb_post: isize,
pub ncb_lana_num: u8,
pub ncb_cmd_cplt: u8,
pub ncb_reserve: [u8; 10],
pub ncb_event: super::super::Foundation::HANDLE,
}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::marker::Copy for NCB {}
#[cfg(target_arch = "x86")]
#[cfg(feature = "Win32_Foundation")]
impl ::core::clone::Clone for NCB {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
pub struct SESSION_BUFFER {
pub lsn: u8,
pub state: u8,
pub local_name: [u8; 16],
pub remote_name: [u8; 16],
pub rcvs_outstanding: u8,
pub sends_outstanding: u8,
}
impl ::core::marker::Copy for SESSION_BUFFER {}
impl ::core::clone::Clone for SESSION_BUFFER {
fn clone(&self) -> Self {
*self
}
}
#[repr(C)]
pub struct SESSION_HEADER {
pub sess_name: u8,
pub num_sess: u8,
pub rcv_dg_outstanding: u8,
pub rcv_any_outstanding: u8,
}
impl ::core::marker::Copy for SESSION_HEADER {}
impl ::core::clone::Clone for SESSION_HEADER {
fn clone(&self) -> Self {
*self
}
}