diff options
Diffstat (limited to 'vendor/winapi/src/shared/mstcpip.rs')
-rw-r--r-- | vendor/winapi/src/shared/mstcpip.rs | 492 |
1 files changed, 0 insertions, 492 deletions
diff --git a/vendor/winapi/src/shared/mstcpip.rs b/vendor/winapi/src/shared/mstcpip.rs deleted file mode 100644 index fe20725..0000000 --- a/vendor/winapi/src/shared/mstcpip.rs +++ /dev/null @@ -1,492 +0,0 @@ -// Licensed under the Apache License, Version 2.0 -// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. -// All files in the project carrying such notice may not be copied, modified, or distributed -// except according to those terms -//! This module contains Microsoft-specific extensions to the core Winsock definitions. -use ctypes::wchar_t; -use shared::basetsd::{UINT32, UINT64, ULONG64}; -use shared::guiddef::GUID; -use shared::in6addr::IN6_ADDR; -use shared::inaddr::IN_ADDR; -use shared::minwindef::{DWORD, PULONG, PUSHORT, UCHAR, ULONG, USHORT}; -use shared::ws2def::{ - INADDR_ANY, INADDR_BROADCAST, INADDR_NONE, IOC_VENDOR, SOCKADDR_IN, - SOCKADDR_STORAGE, -}; -use um::winnt::{BOOLEAN, LONG, LPCWSTR, PCSTR, PCWSTR, PSTR, PWSTR}; -DEFINE_GUID!{SOCKET_DEFAULT2_QM_POLICY, - 0xaec2ef9c, 0x3a4d, 0x4d3e, 0x88, 0x42, 0x23, 0x99, 0x42, 0xe3, 0x9a, 0x47} -DEFINE_GUID!{REAL_TIME_NOTIFICATION_CAPABILITY, - 0x6b59819a, 0x5cae, 0x492d, 0xa9, 0x01, 0x2a, 0x3c, 0x2c, 0x50, 0x16, 0x4f} -DEFINE_GUID!{REAL_TIME_NOTIFICATION_CAPABILITY_EX, - 0x6843da03, 0x154a, 0x4616, 0xa5, 0x08, 0x44, 0x37, 0x12, 0x95, 0xf9, 0x6b} -DEFINE_GUID!{ASSOCIATE_NAMERES_CONTEXT, - 0x59a38b67, 0xd4fe, 0x46e1, 0xba, 0x3c, 0x87, 0xea, 0x74, 0xca, 0x30, 0x49} -ENUM!{enum TCPSTATE { - TCPSTATE_CLOSED, - TCPSTATE_LISTEN, - TCPSTATE_SYN_SENT, - TCPSTATE_SYN_RCVD, - TCPSTATE_ESTABLISHED, - TCPSTATE_FIN_WAIT_1, - TCPSTATE_FIN_WAIT_2, - TCPSTATE_CLOSE_WAIT, - TCPSTATE_CLOSING, - TCPSTATE_LAST_ACK, - TCPSTATE_TIME_WAIT, - TCPSTATE_MAX, -}} -STRUCT!{struct TRANSPORT_SETTING_ID { - Guid: GUID, -}} -pub type PTRANSPORT_SETTING_ID = *mut TRANSPORT_SETTING_ID; -STRUCT!{struct tcp_keepalive { - onoff: ULONG, - keepalivetime: ULONG, - keepaliveinterval: ULONG, -}} -ENUM!{enum CONTROL_CHANNEL_TRIGGER_STATUS { - CONTROL_CHANNEL_TRIGGER_STATUS_INVALID = 0, - CONTROL_CHANNEL_TRIGGER_STATUS_SOFTWARE_SLOT_ALLOCATED = 1, - CONTROL_CHANNEL_TRIGGER_STATUS_HARDWARE_SLOT_ALLOCATED = 2, - CONTROL_CHANNEL_TRIGGER_STATUS_POLICY_ERROR = 3, - CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR = 4, - CONTROL_CHANNEL_TRIGGER_STATUS_TRANSPORT_DISCONNECTED = 5, - CONTROL_CHANNEL_TRIGGER_STATUS_SERVICE_UNAVAILABLE = 6, -}} -pub type PCONTROL_CHANNEL_TRIGGER_STATUS = *mut CONTROL_CHANNEL_TRIGGER_STATUS; -pub const CONTROL_CHANNEL_TRIGGER_STATUS_MAX: u32 = CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR; -STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_INPUT { - TransportSettingId: TRANSPORT_SETTING_ID, - BrokerEventGuid: GUID, -}} -pub type PREAL_TIME_NOTIFICATION_SETTING_INPUT = *mut REAL_TIME_NOTIFICATION_SETTING_INPUT; -STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_INPUT_EX { - TransportSettingId: TRANSPORT_SETTING_ID, - BrokerEventGuid: GUID, - Unmark: BOOLEAN, -}} -pub type PREAL_TIME_NOTIFICATION_SETTING_INPUT_EX = *mut REAL_TIME_NOTIFICATION_SETTING_INPUT_EX; -STRUCT!{struct REAL_TIME_NOTIFICATION_SETTING_OUTPUT { - ChannelStatus: CONTROL_CHANNEL_TRIGGER_STATUS, -}} -pub type PREAL_TIME_NOTIFICATION_SETTING_OUTPUT = *mut REAL_TIME_NOTIFICATION_SETTING_OUTPUT; -STRUCT!{struct ASSOCIATE_NAMERES_CONTEXT_INPUT { - TransportSettingId: TRANSPORT_SETTING_ID, - Handle: UINT64, -}} -pub type PASSOCIATE_NAMERES_CONTEXT_INPUT = *mut ASSOCIATE_NAMERES_CONTEXT_INPUT; -pub const SIO_RCVALL: DWORD = _WSAIOW!(IOC_VENDOR,1); -pub const SIO_RCVALL_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,2); -pub const SIO_RCVALL_IGMPMCAST: DWORD = _WSAIOW!(IOC_VENDOR,3); -pub const SIO_KEEPALIVE_VALS: DWORD = _WSAIOW!(IOC_VENDOR,4); -pub const SIO_ABSORB_RTRALERT: DWORD = _WSAIOW!(IOC_VENDOR,5); -pub const SIO_UCAST_IF: DWORD = _WSAIOW!(IOC_VENDOR,6); -pub const SIO_LIMIT_BROADCASTS: DWORD = _WSAIOW!(IOC_VENDOR,7); -pub const SIO_INDEX_BIND: DWORD = _WSAIOW!(IOC_VENDOR,8); -pub const SIO_INDEX_MCASTIF: DWORD = _WSAIOW!(IOC_VENDOR,9); -pub const SIO_INDEX_ADD_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,10); -pub const SIO_INDEX_DEL_MCAST: DWORD = _WSAIOW!(IOC_VENDOR,11); -pub const SIO_RCVALL_MCAST_IF: DWORD = _WSAIOW!(IOC_VENDOR,13); -pub const SIO_RCVALL_IF: DWORD = _WSAIOW!(IOC_VENDOR,14); -pub const SIO_LOOPBACK_FAST_PATH: DWORD = _WSAIOW!(IOC_VENDOR,16); -pub const SIO_TCP_INITIAL_RTO: DWORD = _WSAIOW!(IOC_VENDOR,17); -pub const SIO_APPLY_TRANSPORT_SETTING: DWORD = _WSAIOW!(IOC_VENDOR,19); -pub const SIO_QUERY_TRANSPORT_SETTING: DWORD = _WSAIOW!(IOC_VENDOR,20); -pub const SIO_TCP_SET_ICW: DWORD = _WSAIOW!(IOC_VENDOR,22); -pub const SIO_TCP_SET_ACK_FREQUENCY: DWORD = _WSAIOW!(IOC_VENDOR,23); -pub const SIO_TCP_INFO: DWORD = _WSAIORW!(IOC_VENDOR,39); -ENUM!{enum RCVALL_VALUE { - RCVALL_OFF = 0, - RCVALL_ON = 1, - RCVALL_SOCKETLEVELONLY = 2, - RCVALL_IPLEVEL = 3, -}} -pub type PRCVALL_VALUE = *mut RCVALL_VALUE; -STRUCT!{struct RCVALL_IF { - Mode: RCVALL_VALUE, - Interface: ULONG, -}} -pub type PRCVALL_IF = *mut RCVALL_IF; -pub const TCP_INITIAL_RTO_UNSPECIFIED_RTT: USHORT = -1i16 as u16; -pub const TCP_INITIAL_RTO_UNSPECIFIED_MAX_SYN_RETRANSMISSIONS: UCHAR = -1i8 as u8; -pub const TCP_INITIAL_RTO_DEFAULT_RTT: USHORT = 0; -pub const TCP_INITIAL_RTO_DEFAULT_MAX_SYN_RETRANSMISSIONS: UCHAR = 0; -STRUCT!{struct TCP_INITIAL_RTO_PARAMETERS { - Rtt: USHORT, - MaxSynRetransmissions: UCHAR, -}} -pub type PTCP_INITIAL_RTO_PARAMETERS = *mut TCP_INITIAL_RTO_PARAMETERS; -ENUM!{enum TCP_ICW_LEVEL { - TCP_ICW_LEVEL_DEFAULT = 0, - TCP_ICW_LEVEL_HIGH = 1, - TCP_ICW_LEVEL_VERY_HIGH = 2, - TCP_ICW_LEVEL_AGGRESSIVE = 3, - TCP_ICW_LEVEL_EXPERIMENTAL = 4, - TCP_ICW_LEVEL_COMPAT = 254, - TCP_ICW_LEVEL_MAX = 255, -}} -pub type PTCP_ICW_LEVEL = *mut TCP_ICW_LEVEL; -STRUCT!{struct TCP_ICW_PARAMETERS { - Level: TCP_ICW_LEVEL, -}} -pub type PTCP_ICW_PARAMETERS = *mut TCP_ICW_PARAMETERS; -STRUCT!{struct TCP_ACK_FREQUENCY_PARAMETERS { - TcpDelayedAckFrequency: UCHAR, -}} -pub type PTCP_ACK_FREQUENCY_PARAMETERS = *mut TCP_ACK_FREQUENCY_PARAMETERS; -STRUCT!{struct TCP_INFO_v0 { - State: TCPSTATE, - Mss: ULONG, - ConnectionTimeMs: ULONG64, - TimestampsEnabled: BOOLEAN, - RttUs: ULONG, - MinRttUs: ULONG, - BytesInFlight: ULONG, - Cwnd: ULONG, - SndWnd: ULONG, - RcvWnd: ULONG, - RcvBuf: ULONG, - BytesOut: ULONG64, - BytesIn: ULONG64, - BytesReordered: ULONG, - BytesRetrans: ULONG, - FastRetrans: ULONG, - DupAcksIn: ULONG, - TimeoutEpisodes: ULONG, - SynRetrans: UCHAR, -}} -pub type PTCP_INFO_v0 = *mut TCP_INFO_v0; -pub const SIO_ACQUIRE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 100); -pub const SIO_RELEASE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 101); -pub const SIO_ASSOCIATE_PORT_RESERVATION: DWORD = _WSAIOW!(IOC_VENDOR, 102); -STRUCT!{struct INET_PORT_RANGE { - StartPort: USHORT, - NumberOfPorts: USHORT, -}} -pub type PINET_PORT_RANGE = *mut INET_PORT_RANGE; -pub type INET_PORT_RESERVATION = INET_PORT_RANGE; -pub type PINET_PORT_RESERVATION = *mut INET_PORT_RANGE; -STRUCT!{struct INET_PORT_RESERVATION_TOKEN { - Token: ULONG64, -}} -pub type PINET_PORT_RESERVATION_TOKEN = *mut INET_PORT_RESERVATION_TOKEN; -STRUCT!{struct INET_PORT_RESERVATION_INSTANCE { - Reservation: INET_PORT_RESERVATION, - Token: INET_PORT_RESERVATION_TOKEN, -}} -pub type PINET_PORT_RESERVATION_INSTANCE = *mut INET_PORT_RESERVATION_INSTANCE; -STRUCT!{struct INET_PORT_RESERVATION_INFORMATION { - OwningPid: ULONG, -}} -pub type PINET_PORT_RESERVATION_INFORMATION = *mut INET_PORT_RESERVATION_INFORMATION; -pub const SIO_SET_SECURITY: DWORD = _WSAIOW!(IOC_VENDOR, 200); -pub const SIO_QUERY_SECURITY: DWORD = _WSAIORW!(IOC_VENDOR, 201); -pub const SIO_SET_PEER_TARGET_NAME: DWORD = _WSAIOW!(IOC_VENDOR, 202); -pub const SIO_DELETE_PEER_TARGET_NAME: DWORD = _WSAIOW!(IOC_VENDOR, 203); -pub const SIO_QUERY_WFP_CONNECTION_REDIRECT_RECORDS: DWORD = _WSAIOW!(IOC_VENDOR, 220); -pub const SIO_QUERY_WFP_CONNECTION_REDIRECT_CONTEXT: DWORD = _WSAIOW!(IOC_VENDOR, 221); -pub const SIO_SET_WFP_CONNECTION_REDIRECT_RECORDS: DWORD = _WSAIOW!(IOC_VENDOR, 222); -pub const SIO_SOCKET_USAGE_NOTIFICATION: DWORD = _WSAIOW!(IOC_VENDOR, 204); -ENUM!{enum SOCKET_USAGE_TYPE { - SYSTEM_CRITICAL_SOCKET = 1, -}} -ENUM!{enum SOCKET_SECURITY_PROTOCOL { - SOCKET_SECURITY_PROTOCOL_DEFAULT, - SOCKET_SECURITY_PROTOCOL_IPSEC, - SOCKET_SECURITY_PROTOCOL_IPSEC2, - SOCKET_SECURITY_PROTOCOL_INVALID, -}} -STRUCT!{struct SOCKET_SECURITY_SETTINGS { - SecurityProtocol: SOCKET_SECURITY_PROTOCOL, - SecurityFlags: ULONG, -}} -pub const SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION: ULONG = 0x1; -pub const SOCKET_SETTINGS_IPSEC_OPTIONAL_PEER_NAME_VERIFICATION: ULONG = 0x2; -pub const SOCKET_SETTINGS_IPSEC_ALLOW_FIRST_INBOUND_PKT_UNENCRYPTED: ULONG = 0x4; -pub const SOCKET_SETTINGS_IPSEC_PEER_NAME_IS_RAW_FORMAT: ULONG = 0x8; -STRUCT!{struct SOCKET_SECURITY_SETTINGS_IPSEC { - SecurityProtocol: SOCKET_SECURITY_PROTOCOL, - SecurityFlags: ULONG, - IpsecFlags: ULONG, - AuthipMMPolicyKey: GUID, - AuthipQMPolicyKey: GUID, - Reserved: GUID, - Reserved2: UINT64, - UserNameStringLen: ULONG, - DomainNameStringLen: ULONG, - PasswordStringLen: ULONG, - AllStrings: [wchar_t; 0], -}} -STRUCT!{struct SOCKET_PEER_TARGET_NAME { - SecurityProtocol: SOCKET_SECURITY_PROTOCOL, - PeerAddress: SOCKADDR_STORAGE, - PeerTargetNameStringLen: ULONG, - AllStrings: [wchar_t; 0], -}} -STRUCT!{struct SOCKET_SECURITY_QUERY_TEMPLATE { - SecurityProtocol: SOCKET_SECURITY_PROTOCOL, - PeerAddress: SOCKADDR_STORAGE, - PeerTokenAccessMask: ULONG, -}} -pub const SOCKET_QUERY_IPSEC2_ABORT_CONNECTION_ON_FIELD_CHANGE: ULONG = 0x1; -pub const SOCKET_QUERY_IPSEC2_FIELD_MASK_MM_SA_ID: ULONG = 0x1; -pub const SOCKET_QUERY_IPSEC2_FIELD_MASK_QM_SA_ID: ULONG = 0x2; -STRUCT!{struct SOCKET_SECURITY_QUERY_TEMPLATE_IPSEC2 { - SecurityProtocol: SOCKET_SECURITY_PROTOCOL, - PeerAddress: SOCKADDR_STORAGE, - PeerTokenAccessMask: ULONG, - Flags: ULONG, - FieldMask: ULONG, -}} -pub const SOCKET_INFO_CONNECTION_SECURED: ULONG = 0x1; -pub const SOCKET_INFO_CONNECTION_ENCRYPTED: ULONG = 0x2; -pub const SOCKET_INFO_CONNECTION_IMPERSONATED: ULONG = 0x4; -STRUCT!{struct SOCKET_SECURITY_QUERY_INFO { - SecurityProtocol: SOCKET_SECURITY_PROTOCOL, - Flags: ULONG, - PeerApplicationAccessTokenHandle: UINT64, - PeerMachineAccessTokenHandle: UINT64, -}} -STRUCT!{struct SOCKET_SECURITY_QUERY_INFO_IPSEC2 { - SecurityProtocol: SOCKET_SECURITY_PROTOCOL, - Flags: ULONG, - PeerApplicationAccessTokenHandle: UINT64, - PeerMachineAccessTokenHandle: UINT64, - MmSaId: UINT64, - QmSaId: UINT64, - NegotiationWinerr: UINT32, - SaLookupContext: GUID, -}} -pub const SIO_QUERY_WFP_ALE_ENDPOINT_HANDLE: DWORD = _WSAIOR!(IOC_VENDOR, 205); -pub const SIO_QUERY_RSS_SCALABILITY_INFO: DWORD = _WSAIOR!(IOC_VENDOR, 210); -STRUCT!{struct RSS_SCALABILITY_INFO { - RssEnabled: BOOLEAN, -}} -pub type PRSS_SCALABILITY_INFO = *mut RSS_SCALABILITY_INFO; -#[inline] -pub fn IN4_CLASSA(i: LONG) -> bool { - (i & 0x80) == 0 -} -#[inline] -pub fn IN4_CLASSB(i: LONG) -> bool { - (i & 0xc0) == 0x80 -} -#[inline] -pub fn IN4_CLASSC(i: LONG) -> bool { - (i & 0xe0) == 0xc0 -} -#[inline] -pub fn IN4_CLASSD(i: LONG) -> bool { - (i & 0xf0) == 0xe0 -} -#[inline] -pub fn IN4_MULTICAST(i: LONG) -> bool { - IN4_CLASSD(i) -} -pub const IN4ADDR_ANY: ULONG = INADDR_ANY; -pub const IN4ADDR_LOOPBACK: ULONG = 0x0100007f; -pub const IN4ADDR_BROADCAST: ULONG = INADDR_BROADCAST; -pub const IN4ADDR_NONE: ULONG = INADDR_NONE; -pub const IN4ADDR_LOOPBACKPREFIX_LENGTH: usize = 8; -pub const IN4ADDR_LINKLOCALPREFIX_LENGTH: usize = 16; -pub const IN4ADDR_MULTICASTPREFIX_LENGTH: usize = 4; -#[inline] -pub fn IN4_ADDR_EQUAL(a: &IN_ADDR, b: &IN_ADDR) -> bool { - unsafe { *a.S_un.S_addr() == *b.S_un.S_addr() } -} -#[inline] -pub fn IN4_UNALIGNED_ADDR_EQUAL(a: &IN_ADDR, b: &IN_ADDR) -> bool { - unsafe { *a.S_un.S_addr() == *b.S_un.S_addr() } -} -#[inline] -pub fn IN4_IS_ADDR_UNSPECIFIED(a: &IN_ADDR) -> bool { - unsafe { *a.S_un.S_addr() == IN4ADDR_ANY } -} -#[inline] -pub fn IN4_IS_UNALIGNED_ADDR_UNSPECIFIED(a: &IN_ADDR) -> bool { - unsafe { *a.S_un.S_addr() == IN4ADDR_ANY } -} -#[inline] -pub fn IN4_IS_ADDR_LOOPBACK(a: &IN_ADDR) -> bool { - unsafe { a.S_un.S_un_b().s_b1 == 0x7f } -} -#[inline] -pub fn IN4_IS_UNALIGNED_ADDR_LOOPBACK(a: &IN_ADDR) -> bool { - unsafe { a.S_un.S_un_b().s_b1 == 0x7f } -} -#[inline] -pub fn IN4_IS_ADDR_BROADCAST(a: &IN_ADDR) -> bool { - unsafe { *a.S_un.S_addr() == IN4ADDR_BROADCAST } -} -#[inline] -pub fn IN4_IS_UNALIGNED_ADDR_BROADCAST(a: &IN_ADDR) -> bool { - unsafe { *a.S_un.S_addr() == IN4ADDR_BROADCAST } -} -#[inline] -pub fn IN4_IS_ADDR_MULTICAST(a: &IN_ADDR) -> bool { - IN4_MULTICAST(unsafe { *a.S_un.S_addr() as LONG }) -} -#[inline] -pub fn IN4_IS_UNALIGNED_ADDR_MULTICAST(a: &IN_ADDR) -> bool { - IN4_MULTICAST(unsafe { *a.S_un.S_addr() as LONG }) -} -#[inline] -pub fn IN4_IS_ADDR_LINKLOCAL(a: &IN_ADDR) -> bool { - unsafe { (*a.S_un.S_addr() & 0xffff) == 0xfea9 } -} -#[inline] -pub fn IN4_IS_UNALIGNED_ADDR_LINKLOCAL(a: &IN_ADDR) -> bool { - unsafe { (*a.S_un.S_addr() & 0xffff) == 0xfea9 } -} -#[inline] -pub fn IN4_IS_ADDR_SITELOCAL(_: &IN_ADDR) -> bool { - false -} -#[inline] -pub fn IN4_IS_UNALIGNED_ADDR_SITELOCAL(_: &IN_ADDR) -> bool { - false -} -#[inline] -pub fn IN4_IS_ADDR_RFC1918(a: &IN_ADDR) -> bool { - let s_addr = unsafe { *a.S_un.S_addr() }; - ((s_addr & 0x00ff) == 0x0a) || ((s_addr & 0xf0ff) == 0x10ac) || ((s_addr & 0xffff) == 0xa8c0) -} -#[inline] -pub fn IN4_IS_UNALIGNED_ADDR_RFC1918(a: &IN_ADDR) -> bool { - IN4_IS_ADDR_RFC1918(a) -} -#[inline] -pub fn IN4_IS_ADDR_MC_LINKLOCAL(a: &IN_ADDR) -> bool { - unsafe { (*a.S_un.S_addr() & 0xffffff) == 0xe0 } -} -#[inline] -pub fn IN4_IS_ADDR_MC_ADMINLOCAL(a: &IN_ADDR) -> bool { - unsafe { (*a.S_un.S_addr() & 0xffff) == 0xffef } -} -#[inline] -pub fn IN4_IS_ADDR_MC_SITELOCAL(a: &IN_ADDR) -> bool { - let first = unsafe { (*a.S_un.S_addr() & 0xff) == 0xef }; - first && !IN4_IS_ADDR_MC_ADMINLOCAL(a) -} -#[inline] -pub fn IN4ADDR_ISANY(a: &SOCKADDR_IN) -> bool { - IN4_IS_ADDR_UNSPECIFIED(&a.sin_addr) -} -#[inline] -pub fn IN4ADDR_ISLOOPBACK(a: &SOCKADDR_IN) -> bool { - IN4_IS_ADDR_LOOPBACK(&a.sin_addr) -} -extern "system" { - pub fn RtlIpv4AddressToStringA( - Addr: *const IN_ADDR, - S: PSTR, - ) -> PSTR; - pub fn RtlIpv4AddressToStringExA( - Address: *const IN_ADDR, - Port: USHORT, - AddressString: PSTR, - AddressStringLength: PULONG, - ) -> LONG; - pub fn RtlIpv4AddressToStringW( - Addr: *const IN_ADDR, - S: PWSTR, - ) -> PWSTR; - pub fn RtlIpv4AddressToStringExW( - Address: *const IN_ADDR, - Port: USHORT, - AddressString: PWSTR, - AddressStringLength: PULONG, - ) -> LONG; - pub fn RtlIpv4StringToAddressA( - S: PCSTR, - Strict: BOOLEAN, - Terminator: *mut PCSTR, - Addr: *mut IN_ADDR, - ) -> LONG; - pub fn RtlIpv4StringToAddressExA( - AddressString: PCSTR, - Strict: BOOLEAN, - Address: *mut IN_ADDR, - Port: PUSHORT, - ) -> LONG; - pub fn RtlIpv4StringToAddressW( - S: PCWSTR, - Strict: BOOLEAN, - Terminator: *mut LPCWSTR, - Addr: *mut IN_ADDR, - ) -> LONG; - pub fn RtlIpv4StringToAddressExW( - AddressString: PCWSTR, - Strict: BOOLEAN, - Address: *mut IN_ADDR, - Port: PUSHORT, - ) -> LONG; - pub fn RtlIpv6AddressToStringA( - Addr: *const IN6_ADDR, - S: PSTR, - ) -> PSTR; - pub fn RtlIpv6AddressToStringExA( - Address: *const IN6_ADDR, - ScopeId: ULONG, - Port: USHORT, - AddressString: PSTR, - AddressStringLength: PULONG, - ) -> LONG; - pub fn RtlIpv6AddressToStringW( - Addr: *const IN6_ADDR, - S: PWSTR, - ) -> PWSTR; - pub fn RtlIpv6AddressToStringExW( - Address: *const IN6_ADDR, - ScopeId: ULONG, - Port: USHORT, - AddressString: PWSTR, - AddressStringLength: PULONG, - ) -> LONG; - pub fn RtlIpv6StringToAddressA( - S: PCSTR, - Terminator: *mut PCSTR, - Addr: *mut IN6_ADDR, - ) -> LONG; - pub fn RtlIpv6StringToAddressExA( - AddressString: PCSTR, - Address: *mut IN6_ADDR, - ScopeId: PULONG, - Port: PUSHORT, - ) -> LONG; - pub fn RtlIpv6StringToAddressW( - S: PCWSTR, - Terminator: *mut PCWSTR, - Addr: *mut IN6_ADDR, - ) -> LONG; - pub fn RtlIpv6StringToAddressExW( - AddressString: PCWSTR, - Address: *mut IN6_ADDR, - ScopeId: PULONG, - Port: PUSHORT, - ) -> LONG; -} -DECLARE_HANDLE!{DL_EUI48, _DL_EUI48} -pub type PDL_EUI48 = *mut DL_EUI48; -extern "system" { - pub fn RtlEthernetAddressToStringA( - Addr: *const DL_EUI48, - S: PSTR, - ) -> PSTR; - pub fn RtlEthernetAddressToStringW( - Addr: *const DL_EUI48, - S: PWSTR, - ) -> PWSTR; - pub fn RtlEthernetStringToAddressA( - S: PCSTR, - Terminator: *mut PCSTR, - Addr: *mut DL_EUI48, - ) -> LONG; - pub fn RtlEthernetStringToAddressW( - S: PCWSTR, - Terminator: *mut LPCWSTR, - Addr: *mut DL_EUI48, - ) -> LONG; -} |