diff options
author | Valentin Popov <valentin@popov.link> | 2024-07-19 15:37:58 +0300 |
---|---|---|
committer | Valentin Popov <valentin@popov.link> | 2024-07-19 15:37:58 +0300 |
commit | a990de90fe41456a23e58bd087d2f107d321f3a1 (patch) | |
tree | 15afc392522a9e85dc3332235e311b7d39352ea9 /vendor/winapi/src/shared/netioapi.rs | |
parent | 3d48cd3f81164bbfc1a755dc1d4a9a02f98c8ddd (diff) | |
download | fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.tar.xz fparkan-a990de90fe41456a23e58bd087d2f107d321f3a1.zip |
Deleted vendor folder
Diffstat (limited to 'vendor/winapi/src/shared/netioapi.rs')
-rw-r--r-- | vendor/winapi/src/shared/netioapi.rs | 702 |
1 files changed, 0 insertions, 702 deletions
diff --git a/vendor/winapi/src/shared/netioapi.rs b/vendor/winapi/src/shared/netioapi.rs deleted file mode 100644 index 9098b70..0000000 --- a/vendor/winapi/src/shared/netioapi.rs +++ /dev/null @@ -1,702 +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. -use shared::basetsd::{PUINT8, SIZE_T, UINT8, ULONG64}; -use shared::guiddef::GUID; -use shared::ifdef::{ - IF_MAX_PHYS_ADDRESS_LENGTH, IF_MAX_STRING_SIZE, IF_OPER_STATUS, NET_IFINDEX, - NET_IF_ACCESS_TYPE, NET_IF_ADMIN_STATUS, NET_IF_COMPARTMENT_ID, NET_IF_COMPARTMENT_SCOPE, - NET_IF_CONNECTION_TYPE, NET_IF_DIRECTION_TYPE, NET_IF_MEDIA_CONNECT_STATE, NET_IF_NETWORK_GUID, - NET_LUID, PNET_IFINDEX, PNET_IF_COMPARTMENT_ID, PNET_IF_COMPARTMENT_SCOPE, PNET_LUID, - TUNNEL_TYPE, -}; -use shared::ipifcons::IFTYPE; -use shared::minwindef::{BYTE, DWORD, PULONG, UCHAR, ULONG, USHORT}; -use shared::nldef::{ - NL_BANDWIDTH_INFORMATION, NL_DAD_STATE, NL_INTERFACE_OFFLOAD_ROD, - NL_LINK_LOCAL_ADDRESS_BEHAVIOR, NL_NEIGHBOR_STATE, NL_PREFIX_ORIGIN, - NL_ROUTER_DISCOVERY_BEHAVIOR, NL_ROUTE_ORIGIN, NL_ROUTE_PROTOCOL, NL_SUFFIX_ORIGIN, -}; -use shared::ntddndis::{NDIS_MEDIUM, NDIS_PHYSICAL_MEDIUM}; -use shared::ntdef::{ - BOOLEAN, CHAR, HANDLE, LARGE_INTEGER, PCHAR, PCSTR, PSTR, PVOID, PWCHAR, PWSTR, WCHAR, -}; -use shared::ws2def::{ADDRESS_FAMILY, SCOPE_ID, ScopeLevelCount}; -use shared::ws2ipdef::{PSOCKADDR_IN6_PAIR, SOCKADDR_IN6, SOCKADDR_INET}; -const ANY_SIZE: usize = 1; -pub type NETIO_STATUS = DWORD; -pub type NETIOAPI_API = NETIO_STATUS; -ENUM!{enum MIB_NOTIFICATION_TYPE { - MibParameterNotification, - MibAddInstance, - MibDeleteInstance, - MibInitialNotification, -}} -pub type PMIB_NOTIFICATION_TYPE = *mut MIB_NOTIFICATION_TYPE; -STRUCT!{struct MIB_IF_ROW2_InterfaceAndOperStatusFlags { - bitfield: BYTE, -}} -BITFIELD!{MIB_IF_ROW2_InterfaceAndOperStatusFlags bitfield: BOOLEAN [ - HardwareInterface set_HardwareInterface[0..1], - FilterInterface set_FilterInterface[1..2], - ConnectorPresent set_ConnectorPresent[2..3], - NotAuthenticated set_NotAuthenticated[3..4], - NotMediaConnected set_NotMediaConnected[4..5], - Paused set_Paused[5..6], - LowPower set_LowPower[6..7], - EndPointInterface set_EndPointInterface[7..8], -]} -STRUCT!{struct MIB_IF_ROW2 { - InterfaceLuid: NET_LUID, - InterfaceIndex: NET_IFINDEX, - InterfaceGuid: GUID, - Alias: [WCHAR; IF_MAX_STRING_SIZE + 1], - Description: [WCHAR; IF_MAX_STRING_SIZE + 1], - PhysicalAddressLength: ULONG, - PhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH], - PermanentPhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH], - Mtu: ULONG, - Type: IFTYPE, - TunnelType: TUNNEL_TYPE, - MediaType: NDIS_MEDIUM, - PhysicalMediumType: NDIS_PHYSICAL_MEDIUM, - AccessType: NET_IF_ACCESS_TYPE, - DirectionType: NET_IF_DIRECTION_TYPE, - InterfaceAndOperStatusFlags: MIB_IF_ROW2_InterfaceAndOperStatusFlags, - OperStatus: IF_OPER_STATUS, - AdminStatus: NET_IF_ADMIN_STATUS, - MediaConnectState: NET_IF_MEDIA_CONNECT_STATE, - NetworkGuid: NET_IF_NETWORK_GUID, - ConnectionType: NET_IF_CONNECTION_TYPE, - TransmitLinkSpeed: ULONG64, - ReceiveLinkSpeed: ULONG64, - InOctets: ULONG64, - InUcastPkts: ULONG64, - InNUcastPkts: ULONG64, - InDiscards: ULONG64, - InErrors: ULONG64, - InUnknownProtos: ULONG64, - InUcastOctets: ULONG64, - InMulticastOctets: ULONG64, - InBroadcastOctets: ULONG64, - OutOctets: ULONG64, - OutUcastPkts: ULONG64, - OutNUcastPkts: ULONG64, - OutDiscards: ULONG64, - OutErrors: ULONG64, - OutUcastOctets: ULONG64, - OutMulticastOctets: ULONG64, - OutBroadcastOctets: ULONG64, - OutQLen: ULONG64, -}} -pub type PMIB_IF_ROW2 = *mut MIB_IF_ROW2; -STRUCT!{struct MIB_IF_TABLE2 { - NumEntries: ULONG, - Table: [MIB_IF_ROW2; ANY_SIZE], -}} -pub type PMIB_IF_TABLE2 = *mut MIB_IF_TABLE2; -extern "system" { - pub fn GetIfEntry2( - Row: PMIB_IF_ROW2, - ) -> NETIOAPI_API; -} -ENUM!{enum MIB_IF_ENTRY_LEVEL { - MibIfEntryNormal = 0, - MibIfEntryNormalWithoutStatistics = 2, -}} -pub type PMIB_IF_ENTRY_LEVEL = *mut MIB_IF_ENTRY_LEVEL; -extern "system" { - pub fn GetIfEntry2Ex( - Level: MIB_IF_ENTRY_LEVEL, - Row: PMIB_IF_ROW2, - ) -> NETIOAPI_API; - pub fn GetIfTable2( - Table: *mut PMIB_IF_TABLE2, - ) -> NETIOAPI_API; -} -ENUM!{enum MIB_IF_TABLE_LEVEL { - MibIfTableNormal = 0, - MibIfTableRaw = 1, - MibIfTableNormalWithoutStatistics = 2, -}} -pub type PMIB_IF_TABLE_LEVEL = *mut MIB_IF_TABLE_LEVEL; -extern "system" { - pub fn GetIfTable2Ex( - Level: MIB_IF_TABLE_LEVEL, - Table: *mut PMIB_IF_TABLE2, - ) -> NETIOAPI_API; -} -STRUCT!{struct MIB_IPINTERFACE_ROW { - Family: ADDRESS_FAMILY, - InterfaceLuid: NET_LUID, - InterfaceIndex: NET_IFINDEX, - MaxReassemblySize: ULONG, - InterfaceIdentifier: ULONG64, - MinRouterAdvertisementInterval: ULONG, - MaxRouterAdvertisementInterval: ULONG, - AdvertisingEnabled: BOOLEAN, - ForwardingEnabled: BOOLEAN, - WeakHostSend: BOOLEAN, - WeakHostReceive: BOOLEAN, - UseAutomaticMetric: BOOLEAN, - UseNeighborUnreachabilityDetection: BOOLEAN, - ManagedAddressConfigurationSupported: BOOLEAN, - OtherStatefulConfigurationSupported: BOOLEAN, - AdvertiseDefaultRoute: BOOLEAN, - RouterDiscoveryBehavior: NL_ROUTER_DISCOVERY_BEHAVIOR, - DadTransmits: ULONG, // DupAddrDetectTransmits in RFC 2462. - BaseReachableTime: ULONG, - RetransmitTime: ULONG, - PathMtuDiscoveryTimeout: ULONG, // Path MTU discovery timeout (in ms). - LinkLocalAddressBehavior: NL_LINK_LOCAL_ADDRESS_BEHAVIOR, - LinkLocalAddressTimeout: ULONG, // In ms. - ZoneIndices: [ULONG; ScopeLevelCount as usize], // Zone part of a SCOPE_ID. - SitePrefixLength: ULONG, - Metric: ULONG, - NlMtu: ULONG, - Connected: BOOLEAN, - SupportsWakeUpPatterns: BOOLEAN, - SupportsNeighborDiscovery: BOOLEAN, - SupportsRouterDiscovery: BOOLEAN, - ReachableTime: ULONG, - TransmitOffload: NL_INTERFACE_OFFLOAD_ROD, - ReceiveOffload: NL_INTERFACE_OFFLOAD_ROD, - DisableDefaultRoutes: BOOLEAN, -}} -pub type PMIB_IPINTERFACE_ROW = *mut MIB_IPINTERFACE_ROW; -STRUCT!{struct MIB_IPINTERFACE_TABLE { - NumEntries: ULONG, - Table: [MIB_IPINTERFACE_ROW; ANY_SIZE], -}} -pub type PMIB_IPINTERFACE_TABLE = *mut MIB_IPINTERFACE_TABLE; -STRUCT!{struct MIB_IFSTACK_ROW { - HigherLayerInterfaceIndex: NET_IFINDEX, - LowerLayerInterfaceIndex: NET_IFINDEX, -}} -pub type PMIB_IFSTACK_ROW = *mut MIB_IFSTACK_ROW; -STRUCT!{struct MIB_INVERTEDIFSTACK_ROW { - LowerLayerInterfaceIndex: NET_IFINDEX, - HigherLayerInterfaceIndex: NET_IFINDEX, -}} -pub type PMIB_INVERTEDIFSTACK_ROW = *mut MIB_INVERTEDIFSTACK_ROW; -STRUCT!{struct MIB_IFSTACK_TABLE { - NumEntries: ULONG, - Table: [MIB_IFSTACK_ROW; ANY_SIZE], -}} -pub type PMIB_IFSTACK_TABLE = *mut MIB_IFSTACK_TABLE; -STRUCT!{struct MIB_INVERTEDIFSTACK_TABLE { - NumEntries: ULONG, - Table: [MIB_INVERTEDIFSTACK_ROW; ANY_SIZE], -}} -pub type PMIB_INVERTEDIFSTACK_TABLE = *mut MIB_INVERTEDIFSTACK_TABLE; -FN!{stdcall PIPINTERFACE_CHANGE_CALLBACK( - CallerContext: PVOID, - Row: PMIB_IPINTERFACE_ROW, - NotificationType: MIB_NOTIFICATION_TYPE, -) -> ()} -STRUCT!{struct MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES { - InboundBandwidthInformation: NL_BANDWIDTH_INFORMATION, - OutboundBandwidthInformation: NL_BANDWIDTH_INFORMATION, -}} -pub type PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES = *mut - MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES; -extern "system" { - pub fn GetIfStackTable( - Table: *mut PMIB_IFSTACK_TABLE, - ) -> NETIOAPI_API; - pub fn GetInvertedIfStackTable( - Table: *mut PMIB_INVERTEDIFSTACK_TABLE, - ) -> NETIOAPI_API; - pub fn GetIpInterfaceEntry( - Row: PMIB_IPINTERFACE_ROW, - ) -> NETIOAPI_API; - pub fn GetIpInterfaceTable( - Family: ADDRESS_FAMILY, - Table: *mut PMIB_IPINTERFACE_TABLE, - ) -> NETIOAPI_API; - pub fn InitializeIpInterfaceEntry( - Row: PMIB_IPINTERFACE_ROW, - ); - pub fn NotifyIpInterfaceChange( - Family: ADDRESS_FAMILY, - Callback: PIPINTERFACE_CHANGE_CALLBACK, - CallerContext: PVOID, - InitialNotification: BOOLEAN, - NotificationHandle: *mut HANDLE - ) -> NETIOAPI_API; - pub fn SetIpInterfaceEntry( - Row: PMIB_IPINTERFACE_ROW, - ) -> NETIOAPI_API; - pub fn GetIpNetworkConnectionBandwidthEstimates( - InterfaceIndex: NET_IFINDEX, - AddressFamily: ADDRESS_FAMILY, - BandwidthEstimates: PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, - ) -> NETIOAPI_API; -} -STRUCT!{struct MIB_UNICASTIPADDRESS_ROW { - Address: SOCKADDR_INET, - InterfaceLuid: NET_LUID, - InterfaceIndex: NET_IFINDEX, - PrefixOrigin: NL_PREFIX_ORIGIN, - SuffixOrigin: NL_SUFFIX_ORIGIN, - ValidLifetime: ULONG, - PreferredLifetime: ULONG, - OnLinkPrefixLength: UINT8, - SkipAsSource: BOOLEAN, - DadState: NL_DAD_STATE, - ScopeId: SCOPE_ID, - CreationTimeStamp: LARGE_INTEGER, -}} -pub type PMIB_UNICASTIPADDRESS_ROW = *mut MIB_UNICASTIPADDRESS_ROW; -STRUCT!{struct MIB_UNICASTIPADDRESS_TABLE { - NumEntries: ULONG, - Table: [MIB_UNICASTIPADDRESS_ROW; ANY_SIZE], -}} -pub type PMIB_UNICASTIPADDRESS_TABLE = *mut MIB_UNICASTIPADDRESS_TABLE; -FN!{stdcall PUNICAST_IPADDRESS_CHANGE_CALLBACK( - CallerContext: PVOID, - Row: PMIB_UNICASTIPADDRESS_ROW, - NotificationType: MIB_NOTIFICATION_TYPE, -) -> ()} -extern "system" { - pub fn CreateUnicastIpAddressEntry( - Row: *const MIB_UNICASTIPADDRESS_ROW, - ) -> NETIOAPI_API; - pub fn DeleteUnicastIpAddressEntry( - Row: *const MIB_UNICASTIPADDRESS_ROW, - ) -> NETIOAPI_API; - pub fn GetUnicastIpAddressEntry( - Row: PMIB_UNICASTIPADDRESS_ROW - ) -> NETIOAPI_API; - pub fn GetUnicastIpAddressTable( - Family: ADDRESS_FAMILY, - Table: *mut PMIB_UNICASTIPADDRESS_TABLE, - ) -> NETIOAPI_API; - pub fn InitializeUnicastIpAddressEntry( - Row: PMIB_UNICASTIPADDRESS_ROW, - ); - pub fn NotifyUnicastIpAddressChange( - Family: ADDRESS_FAMILY, - Callback: PUNICAST_IPADDRESS_CHANGE_CALLBACK, - CallerContext: PVOID, - InitialNotification: BOOLEAN, - NotificationHandle: *mut HANDLE, - ) -> NETIOAPI_API; -} -FN!{stdcall PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK( - CallerContext: PVOID, - AddressTable: PMIB_UNICASTIPADDRESS_TABLE, -) -> ()} -extern "system" { - pub fn NotifyStableUnicastIpAddressTable( - Family: ADDRESS_FAMILY, - Table: *mut PMIB_UNICASTIPADDRESS_TABLE, - CallerCallback: PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK, - CallerContext: PVOID, - NotificationHandle: *mut HANDLE, - ) -> NETIOAPI_API; - pub fn SetUnicastIpAddressEntry( - Row: *const MIB_UNICASTIPADDRESS_ROW, - ) -> NETIOAPI_API; -} -STRUCT!{struct MIB_ANYCASTIPADDRESS_ROW { - Address: SOCKADDR_INET, - InterfaceLuid: NET_LUID, - InterfaceIndex: NET_IFINDEX, - ScopeId: SCOPE_ID, -}} -pub type PMIB_ANYCASTIPADDRESS_ROW = *mut MIB_ANYCASTIPADDRESS_ROW; -STRUCT!{struct MIB_ANYCASTIPADDRESS_TABLE { - NumEntries: ULONG, - Table: [MIB_ANYCASTIPADDRESS_ROW; ANY_SIZE], -}} -pub type PMIB_ANYCASTIPADDRESS_TABLE = *mut MIB_ANYCASTIPADDRESS_TABLE; -extern "system" { - pub fn CreateAnycastIpAddressEntry( - Row: *const MIB_ANYCASTIPADDRESS_ROW, - ) -> NETIOAPI_API; - pub fn DeleteAnycastIpAddressEntry( - Row: *const MIB_ANYCASTIPADDRESS_ROW, - ) -> NETIOAPI_API; - pub fn GetAnycastIpAddressEntry( - Row: PMIB_ANYCASTIPADDRESS_ROW, - ) -> NETIOAPI_API; - pub fn GetAnycastIpAddressTable( - Family: ADDRESS_FAMILY, - Table: *mut PMIB_ANYCASTIPADDRESS_TABLE, - ) -> NETIOAPI_API; -} -STRUCT!{struct MIB_MULTICASTIPADDRESS_ROW { - Address: SOCKADDR_INET, - InterfaceIndex: NET_IFINDEX, - InterfaceLuid: NET_LUID, - ScopeId: SCOPE_ID, -}} -pub type PMIB_MULTICASTIPADDRESS_ROW = *mut MIB_MULTICASTIPADDRESS_ROW; -STRUCT!{struct MIB_MULTICASTIPADDRESS_TABLE { - NumEntries: ULONG, - Table: [MIB_MULTICASTIPADDRESS_ROW; ANY_SIZE], -}} -pub type PMIB_MULTICASTIPADDRESS_TABLE = *mut MIB_MULTICASTIPADDRESS_TABLE; -extern "system" { - pub fn GetMulticastIpAddressEntry( - Row: PMIB_MULTICASTIPADDRESS_ROW, - ) -> NETIOAPI_API; - pub fn GetMulticastIpAddressTable( - Family: ADDRESS_FAMILY, - Table: *mut PMIB_MULTICASTIPADDRESS_TABLE, - ) -> NETIOAPI_API; -} -STRUCT!{struct IP_ADDRESS_PREFIX { - Prefix: SOCKADDR_INET, - PrefixLength: UINT8, -}} -pub type PIP_ADDRESS_PREFIX = *mut IP_ADDRESS_PREFIX; -STRUCT!{struct MIB_IPFORWARD_ROW2 { - InterfaceLuid: NET_LUID, - InterfaceIndex: NET_IFINDEX, - DestinationPrefix: IP_ADDRESS_PREFIX, - NextHop: SOCKADDR_INET, - SitePrefixLength: UCHAR, - ValidLifetime: ULONG, - PreferredLifetime: ULONG, - Metric: ULONG, - Protocol: NL_ROUTE_PROTOCOL, - Loopback: BOOLEAN, - AutoconfigureAddress: BOOLEAN, - Publish: BOOLEAN, - Immortal: BOOLEAN, - Age: ULONG, - Origin: NL_ROUTE_ORIGIN, -}} -pub type PMIB_IPFORWARD_ROW2 = *mut MIB_IPFORWARD_ROW2; -STRUCT!{struct MIB_IPFORWARD_TABLE2 { - NumEntries: ULONG, - Table: [MIB_IPFORWARD_ROW2; ANY_SIZE], -}} -pub type PMIB_IPFORWARD_TABLE2 = *mut MIB_IPFORWARD_TABLE2; -FN!{stdcall PIPFORWARD_CHANGE_CALLBACK( - CallerContext: PVOID, - Row: PMIB_IPFORWARD_ROW2, - NotificationType: MIB_NOTIFICATION_TYPE, -) -> ()} -extern "system" { - pub fn CreateIpForwardEntry2( - Row: *const MIB_IPFORWARD_ROW2, - ) -> NETIOAPI_API; - pub fn DeleteIpForwardEntry2( - Row: *const MIB_IPFORWARD_ROW2, - ) -> NETIOAPI_API; - pub fn GetBestRoute2( - InterfaceLuid: *mut NET_LUID, - InterfaceIndex: NET_IFINDEX, - SourceAddress: *const SOCKADDR_INET, - DestinationAddress: *const SOCKADDR_INET, - AddressSortOptions: ULONG, - BestRoute: PMIB_IPFORWARD_ROW2, - BestSourceAddress: *mut SOCKADDR_INET, - ) -> NETIOAPI_API; - pub fn GetIpForwardEntry2( - Row: PMIB_IPFORWARD_ROW2, - ) -> NETIOAPI_API; - pub fn GetIpForwardTable2( - Family: ADDRESS_FAMILY, - Table: *mut PMIB_IPFORWARD_TABLE2, - ) -> NETIOAPI_API; - pub fn InitializeIpForwardEntry( - Row: PMIB_IPFORWARD_ROW2, - ); - pub fn NotifyRouteChange2( - AddressFamily: ADDRESS_FAMILY, - Callback: PIPFORWARD_CHANGE_CALLBACK, - CallerContext: PVOID, - InitialNotification: BOOLEAN, - NotificationHandle: *mut HANDLE, - ) -> NETIOAPI_API; - pub fn SetIpForwardEntry2( - Route: *const MIB_IPFORWARD_ROW2, - ) -> NETIOAPI_API; -} -UNION!{union MIB_IPPATH_ROW_u { - [u32; 1], - LastReachable LastReachable_mut: ULONG, // Milliseconds. - LastUnreachable LastUnreachable_mut: ULONG, // Milliseconds. -}} -STRUCT!{struct MIB_IPPATH_ROW { - Source: SOCKADDR_INET, - Destination: SOCKADDR_INET, - InterfaceLuid: NET_LUID, - InterfaceIndex: NET_IFINDEX, - CurrentNextHop: SOCKADDR_INET, - PathMtu: ULONG, - RttMean: ULONG, - RttDeviation: ULONG, - u: MIB_IPPATH_ROW_u, - IsReachable: BOOLEAN, - LinkTransmitSpeed: ULONG64, - LinkReceiveSpeed: ULONG64, -}} -pub type PMIB_IPPATH_ROW = *mut MIB_IPPATH_ROW; -STRUCT!{struct MIB_IPPATH_TABLE { - NumEntries: ULONG, - Table: [MIB_IPPATH_ROW; ANY_SIZE], -}} -pub type PMIB_IPPATH_TABLE = *mut MIB_IPPATH_TABLE; -extern "system" { - pub fn FlushIpPathTable( - Family: ADDRESS_FAMILY, - ) -> NETIOAPI_API; - pub fn GetIpPathEntry( - Row: PMIB_IPPATH_ROW, - ) -> NETIOAPI_API; - pub fn GetIpPathTable( - Family: ADDRESS_FAMILY, - Table: *mut PMIB_IPPATH_TABLE, - ) -> NETIOAPI_API; -} -STRUCT!{struct MIB_IPNET_ROW2_s { - Flags: UCHAR, -}} -BITFIELD!{MIB_IPNET_ROW2_s Flags: UCHAR [ - IsRouter set_IsRouter[0..1], - IsUnreachable set_IsUnreachable[1..2], - Reserved set_Reserved[2..8], -]} -UNION!{union MIB_IPNET_ROW2_ReachabilityTime { - [u32; 1], - LastReachable LastReachable_mut: ULONG, - LastUnreachable LastUnreachable_mut: ULONG, -}} -STRUCT!{struct MIB_IPNET_ROW2 { - Address: SOCKADDR_INET, - InterfaceIndex: NET_IFINDEX, - InterfaceLuid: NET_LUID, - PhysicalAddress: [UCHAR; IF_MAX_PHYS_ADDRESS_LENGTH], - PhysicalAddressLength: ULONG, - State: NL_NEIGHBOR_STATE, - s: MIB_IPNET_ROW2_s, - ReachabilityTime: MIB_IPNET_ROW2_ReachabilityTime, -}} -pub type PMIB_IPNET_ROW2 = *mut MIB_IPNET_ROW2; -STRUCT!{struct MIB_IPNET_TABLE2 { - NumEntries: ULONG, - Table: [MIB_IPNET_ROW2; ANY_SIZE], -}} -pub type PMIB_IPNET_TABLE2 = *mut MIB_IPNET_TABLE2; -extern "system" { - pub fn CreateIpNetEntry2( - Row: *const MIB_IPNET_ROW2, - ) -> NETIOAPI_API; - pub fn DeleteIpNetEntry2( - Row: *const MIB_IPNET_ROW2, - ) -> NETIOAPI_API; - pub fn FlushIpNetTable2( - Family: ADDRESS_FAMILY, - InterfaceIndex: NET_IFINDEX, - ) -> NETIOAPI_API; - pub fn GetIpNetEntry2( - Row: PMIB_IPNET_ROW2, - ) -> NETIOAPI_API; - pub fn GetIpNetTable2( - Family: ADDRESS_FAMILY, - Table: *mut PMIB_IPNET_TABLE2, - ) -> NETIOAPI_API; - pub fn ResolveIpNetEntry2( - Row: PMIB_IPNET_ROW2, - SourceAddress: *const SOCKADDR_INET, - ) -> NETIOAPI_API; - pub fn SetIpNetEntry2( - Row: PMIB_IPNET_ROW2, - ) -> NETIOAPI_API; -} -pub const MIB_INVALID_TEREDO_PORT_NUMBER: USHORT = 0; -FN!{stdcall PTEREDO_PORT_CHANGE_CALLBACK( - CallerContext: PVOID, - Port: USHORT, - NotificationType: MIB_NOTIFICATION_TYPE, -) -> ()} -extern "system" { - pub fn NotifyTeredoPortChange( - Callback: PTEREDO_PORT_CHANGE_CALLBACK, - CallerContext: PVOID, - InitialNotification: BOOLEAN, - NotificationHandle: *mut HANDLE, - ) -> NETIOAPI_API; - pub fn GetTeredoPort( - Port: *mut USHORT, - ) -> NETIOAPI_API; - pub fn CancelMibChangeNotify2( - NotificationHandle: HANDLE, - ) -> NETIOAPI_API; - pub fn FreeMibTable( - Memory: PVOID, - ); - pub fn CreateSortedAddressPairs( - SourceAddressList: *const SOCKADDR_IN6, - SourceAddressCount: ULONG, - DestinationAddressList: *const SOCKADDR_IN6, - DestinationAddressCount: ULONG, - AddressSortOptions: ULONG, - SortedAddressPairList: *mut PSOCKADDR_IN6_PAIR, - SortedAddressPairCount: *mut ULONG, - ) -> NETIOAPI_API; - pub fn ConvertCompartmentGuidToId( - CompartmentGuid: *const GUID, - CompartmentId: PNET_IF_COMPARTMENT_ID, - ) -> NETIOAPI_API; - pub fn ConvertCompartmentIdToGuid( - CompartmentId: NET_IF_COMPARTMENT_ID, - CompartmentGuid: *mut GUID, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceNameToLuidA( - InterfaceName: *const CHAR, - InterfaceLuid: *mut NET_LUID, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceNameToLuidW( - InterfaceName: *const WCHAR, - InterfaceLuid: *mut NET_LUID, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceLuidToNameA( - InterfaceLuid: *const NET_LUID, - InterfaceName: PSTR, - Length: SIZE_T, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceLuidToNameW( - InterfaceLuid: *const NET_LUID, - InterfaceName: PWSTR, - Length: SIZE_T, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceLuidToIndex( - InterfaceLuid: *const NET_LUID, - InterfaceIndex: PNET_IFINDEX, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceIndexToLuid( - InterfaceIndex: NET_IFINDEX, - InterfaceLuid: PNET_LUID, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceLuidToAlias( - InterfaceLuid: *const NET_LUID, - InterfaceAlias: PWSTR, - Length: SIZE_T, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceAliasToLuid( - InterfaceAlias: *const WCHAR, - InterfaceLuid: PNET_LUID, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceLuidToGuid( - InterfaceLuid: *const NET_LUID, - InterfaceGuid: *mut GUID, - ) -> NETIOAPI_API; - pub fn ConvertInterfaceGuidToLuid( - InterfaceGuid: *const GUID, - InterfaceLuid: PNET_LUID, - ) -> NETIOAPI_API; - pub fn if_nametoindex( - InterfaceName: PCSTR, - ) -> NET_IFINDEX; - pub fn if_indextoname( - InterfaceIndex: NET_IFINDEX, - InterfaceName: PCHAR, - ) -> PCHAR; - pub fn GetCurrentThreadCompartmentId() -> NET_IF_COMPARTMENT_ID; - pub fn SetCurrentThreadCompartmentId( - CompartmentId: NET_IF_COMPARTMENT_ID - ) -> NETIOAPI_API; - pub fn GetCurrentThreadCompartmentScope( - CompartmentScope: PNET_IF_COMPARTMENT_SCOPE, - CompartmentId: PNET_IF_COMPARTMENT_ID, - ); - pub fn SetCurrentThreadCompartmentScope( - CompartmentScope: NET_IF_COMPARTMENT_SCOPE, - ) -> NETIOAPI_API; - pub fn GetJobCompartmentId( - JobHandle: HANDLE, - ) -> NET_IF_COMPARTMENT_ID; - pub fn SetJobCompartmentId( - JobHandle: HANDLE, - CompartmentId: NET_IF_COMPARTMENT_ID, - ) -> NETIOAPI_API; - pub fn GetSessionCompartmentId( - SessionId: ULONG, - ) -> NET_IF_COMPARTMENT_ID; - pub fn SetSessionCompartmentId( - SessionId: ULONG, - CompartmentId: NET_IF_COMPARTMENT_ID, - ) -> NETIOAPI_API; - pub fn GetDefaultCompartmentId() -> NET_IF_COMPARTMENT_ID; - pub fn GetNetworkInformation( - NetworkGuid: *const NET_IF_NETWORK_GUID, - CompartmentId: PNET_IF_COMPARTMENT_ID, - SiteId: PULONG, - NetworkName: PWCHAR, - Length: ULONG, - ) -> NETIOAPI_API; - pub fn SetNetworkInformation( - NetworkGuid: *const NET_IF_NETWORK_GUID, - CompartmentId: NET_IF_COMPARTMENT_ID, - NetworkName: *const WCHAR, - ) -> NETIOAPI_API; - pub fn ConvertLengthToIpv4Mask( - MaskLength: ULONG, - Mask: PULONG, - ) -> NETIOAPI_API; - pub fn ConvertIpv4MaskToLength( - Mask: ULONG, - MaskLength: PUINT8, - ) -> NETIOAPI_API; -} -pub const DNS_SETTINGS_VERSION1: ULONG = 0x0001; -pub const DNS_INTERFACE_SETTINGS_VERSION1: ULONG = 0x0001; -pub const DNS_SETTING_IPV6: ULONG64 = 0x0001; -pub const DNS_SETTING_NAMESERVER: ULONG64 = 0x0002; -pub const DNS_SETTING_SEARCHLIST: ULONG64 = 0x0004; -pub const DNS_SETTING_REGISTRATION_ENABLED: ULONG64 = 0x0008; -pub const DNS_SETTING_REGISTER_ADAPTER_NAME: ULONG64 = 0x0010; -pub const DNS_SETTING_DOMAIN: ULONG64 = 0x0020; -pub const DNS_SETTING_HOSTNAME: ULONG64 = 0x0040; -pub const DNS_SETTINGS_ENABLE_LLMNR: ULONG64 = 0x0080; -pub const DNS_SETTINGS_QUERY_ADAPTER_NAME: ULONG64 = 0x0100; -pub const DNS_SETTING_PROFILE_NAMESERVER: ULONG64 = 0x0200; -STRUCT!{struct DNS_SETTINGS { - Version: ULONG, - Flags: ULONG64, - Hostname: PWSTR, - Domain: PWSTR, - SearchList: PWSTR, -}} -STRUCT!{struct DNS_INTERFACE_SETTINGS { - Version: ULONG, - Flags: ULONG64, - Domain: PWSTR, - NameServer: PWSTR, - SearchList: PWSTR, - RegistrationEnabled: ULONG, - RegisterAdapterName: ULONG, - EnableLLMNR: ULONG, - QueryAdapterName: ULONG, - ProfileNameServer: PWSTR, -}} -extern "system" { - pub fn GetDnsSettings( - Settings: *mut DNS_SETTINGS, - ) -> NETIOAPI_API; - pub fn FreeDnsSettings( - Settings: *mut DNS_SETTINGS, - ); - pub fn SetDnsSettings( - Settings: *const DNS_SETTINGS, - ) -> NETIOAPI_API; - pub fn GetInterfaceDnsSettings( - Interface: GUID, - Settings: *mut DNS_INTERFACE_SETTINGS, - ) -> NETIOAPI_API; - pub fn FreeInterfaceDnsSettings( - Settings: *mut DNS_INTERFACE_SETTINGS, - ); - pub fn SetInterfaceDnsSettings( - Interface: GUID, - Settings: *const DNS_INTERFACE_SETTINGS, - ) -> NETIOAPI_API; -} |