mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-28 09:57:46 +00:00
390 lines
17 KiB
C
390 lines
17 KiB
C
/**
|
|
* This file is part of the mingw-w64 runtime package.
|
|
* No warranty is given; refer to the file DISCLAIMER within this pack
|
|
*/
|
|
|
|
#ifndef _NETIOAPI_H_
|
|
#define _NETIOAPI_H_
|
|
|
|
#include <winapifamily.h>
|
|
|
|
#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef ANY_SIZE
|
|
#define ANY_SIZE 1
|
|
#endif
|
|
|
|
#ifdef __IPHLPAPI_H__
|
|
#define NETIO_STATUS DWORD
|
|
#define NETIO_SUCCESS(x) ((x) == NO_ERROR)
|
|
#define NETIOAPI_API_ WINAPI
|
|
#else
|
|
#include <ws2def.h>
|
|
#ifndef __CYGWIN__
|
|
#include <ws2ipdef.h>
|
|
#endif
|
|
#include <iprtrmib.h>
|
|
#include <ifdef.h>
|
|
#include <nldef.h>
|
|
|
|
#define NETIO_STATUS NTSTATUS
|
|
#define NETIO_SUCCESS(x) NT_SUCCESS (x)
|
|
#define NETIOAPI_API_ NTAPI
|
|
#endif
|
|
|
|
#define _NETIOAPI_SUCCESS_
|
|
#define NETIOAPI_API NETIO_STATUS NETIOAPI_API_
|
|
|
|
#define IF_NAMESIZE NDIS_IF_MAX_STRING_SIZE
|
|
|
|
typedef enum _MIB_NOTIFICATION_TYPE {
|
|
MibParameterNotification,
|
|
MibAddInstance,
|
|
MibDeleteInstance,
|
|
MibInitialNotification
|
|
} MIB_NOTIFICATION_TYPE,*PMIB_NOTIFICATION_TYPE;
|
|
|
|
#ifdef _WS2IPDEF_
|
|
#include <ntddndis.h>
|
|
|
|
#define MIB_INVALID_TEREDO_PORT_NUMBER 0
|
|
|
|
typedef enum _MIB_IF_TABLE_LEVEL {
|
|
MibIfTableNormal,
|
|
MibIfTableRaw
|
|
} MIB_IF_TABLE_LEVEL, *PMIB_IF_TABLE_LEVEL;
|
|
|
|
typedef struct _MIB_IF_ROW2 {
|
|
NET_LUID InterfaceLuid;
|
|
NET_IFINDEX InterfaceIndex;
|
|
GUID InterfaceGuid;
|
|
WCHAR Alias[IF_MAX_STRING_SIZE + 1];
|
|
WCHAR Description[IF_MAX_STRING_SIZE + 1];
|
|
ULONG PhysicalAddressLength;
|
|
UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
|
|
UCHAR PermanentPhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
|
|
ULONG Mtu;
|
|
IFTYPE Type;
|
|
TUNNEL_TYPE TunnelType;
|
|
NDIS_MEDIUM MediaType;
|
|
NDIS_PHYSICAL_MEDIUM PhysicalMediumType;
|
|
NET_IF_ACCESS_TYPE AccessType;
|
|
NET_IF_DIRECTION_TYPE DirectionType;
|
|
struct {
|
|
BOOLEAN HardwareInterface : 1;
|
|
BOOLEAN FilterInterface : 1;
|
|
BOOLEAN ConnectorPresent : 1;
|
|
BOOLEAN NotAuthenticated : 1;
|
|
BOOLEAN NotMediaConnected : 1;
|
|
BOOLEAN Paused : 1;
|
|
BOOLEAN LowPower : 1;
|
|
BOOLEAN EndPointInterface : 1;
|
|
} InterfaceAndOperStatusFlags;
|
|
IF_OPER_STATUS OperStatus;
|
|
NET_IF_ADMIN_STATUS AdminStatus;
|
|
NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
|
|
NET_IF_NETWORK_GUID NetworkGuid;
|
|
NET_IF_CONNECTION_TYPE ConnectionType;
|
|
ULONG64 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;
|
|
} MIB_IF_ROW2,*PMIB_IF_ROW2;
|
|
|
|
typedef struct _MIB_IF_TABLE2 {
|
|
ULONG NumEntries;
|
|
MIB_IF_ROW2 Table[ANY_SIZE];
|
|
} MIB_IF_TABLE2, *PMIB_IF_TABLE2;
|
|
|
|
typedef struct _MIB_IPINTERFACE_ROW {
|
|
ADDRESS_FAMILY Family;
|
|
NET_LUID InterfaceLuid;
|
|
NET_IFINDEX InterfaceIndex;
|
|
ULONG MaxReassemblySize;
|
|
ULONG64 InterfaceIdentifier;
|
|
ULONG MinRouterAdvertisementInterval;
|
|
ULONG MaxRouterAdvertisementInterval;
|
|
BOOLEAN AdvertisingEnabled;
|
|
BOOLEAN ForwardingEnabled;
|
|
BOOLEAN WeakHostSend;
|
|
BOOLEAN WeakHostReceive;
|
|
BOOLEAN UseAutomaticMetric;
|
|
BOOLEAN UseNeighborUnreachabilityDetection;
|
|
BOOLEAN ManagedAddressConfigurationSupported;
|
|
BOOLEAN OtherStatefulConfigurationSupported;
|
|
BOOLEAN AdvertiseDefaultRoute;
|
|
NL_ROUTER_DISCOVERY_BEHAVIOR RouterDiscoveryBehavior;
|
|
ULONG DadTransmits;
|
|
ULONG BaseReachableTime;
|
|
ULONG RetransmitTime;
|
|
ULONG PathMtuDiscoveryTimeout;
|
|
NL_LINK_LOCAL_ADDRESS_BEHAVIOR LinkLocalAddressBehavior;
|
|
ULONG LinkLocalAddressTimeout;
|
|
ULONG ZoneIndices[ScopeLevelCount];
|
|
ULONG SitePrefixLength;
|
|
ULONG Metric;
|
|
ULONG NlMtu;
|
|
BOOLEAN Connected;
|
|
BOOLEAN SupportsWakeUpPatterns;
|
|
BOOLEAN SupportsNeighborDiscovery;
|
|
BOOLEAN SupportsRouterDiscovery;
|
|
ULONG ReachableTime;
|
|
NL_INTERFACE_OFFLOAD_ROD TransmitOffload;
|
|
NL_INTERFACE_OFFLOAD_ROD ReceiveOffload;
|
|
BOOLEAN DisableDefaultRoutes;
|
|
} MIB_IPINTERFACE_ROW,*PMIB_IPINTERFACE_ROW;
|
|
|
|
typedef struct _MIB_IPINTERFACE_TABLE {
|
|
ULONG NumEntries;
|
|
MIB_IPINTERFACE_ROW Table[ANY_SIZE];
|
|
} MIB_IPINTERFACE_TABLE,*PMIB_IPINTERFACE_TABLE;
|
|
|
|
typedef struct _MIB_IFSTACK_ROW {
|
|
NET_IFINDEX HigherLayerInterfaceIndex;
|
|
NET_IFINDEX LowerLayerInterfaceIndex;
|
|
} MIB_IFSTACK_ROW,*PMIB_IFSTACK_ROW;
|
|
|
|
typedef struct _MIB_INVERTEDIFSTACK_ROW {
|
|
NET_IFINDEX LowerLayerInterfaceIndex;
|
|
NET_IFINDEX HigherLayerInterfaceIndex;
|
|
} MIB_INVERTEDIFSTACK_ROW,*PMIB_INVERTEDIFSTACK_ROW;
|
|
|
|
typedef struct _MIB_IFSTACK_TABLE {
|
|
ULONG NumEntries;
|
|
MIB_IFSTACK_ROW Table[ANY_SIZE];
|
|
} MIB_IFSTACK_TABLE,*PMIB_IFSTACK_TABLE;
|
|
|
|
typedef struct _MIB_INVERTEDIFSTACK_TABLE {
|
|
ULONG NumEntries;
|
|
MIB_INVERTEDIFSTACK_ROW Table[ANY_SIZE];
|
|
} MIB_INVERTEDIFSTACK_TABLE,*PMIB_INVERTEDIFSTACK_TABLE;
|
|
|
|
typedef struct _MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES {
|
|
NL_BANDWIDTH_INFORMATION InboundBandwidthInformation;
|
|
NL_BANDWIDTH_INFORMATION OutboundBandwidthInformation;
|
|
} MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, *PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES;
|
|
|
|
typedef struct _MIB_UNICASTIPADDRESS_ROW {
|
|
SOCKADDR_INET Address;
|
|
NET_LUID InterfaceLuid;
|
|
NET_IFINDEX InterfaceIndex;
|
|
NL_PREFIX_ORIGIN PrefixOrigin;
|
|
NL_SUFFIX_ORIGIN SuffixOrigin;
|
|
ULONG ValidLifetime;
|
|
ULONG PreferredLifetime;
|
|
UINT8 OnLinkPrefixLength;
|
|
BOOLEAN SkipAsSource;
|
|
NL_DAD_STATE DadState;
|
|
SCOPE_ID ScopeId;
|
|
LARGE_INTEGER CreationTimeStamp;
|
|
} MIB_UNICASTIPADDRESS_ROW,*PMIB_UNICASTIPADDRESS_ROW;
|
|
|
|
typedef struct _MIB_UNICASTIPADDRESS_TABLE {
|
|
ULONG NumEntries;
|
|
MIB_UNICASTIPADDRESS_ROW Table[ANY_SIZE];
|
|
} MIB_UNICASTIPADDRESS_TABLE,*PMIB_UNICASTIPADDRESS_TABLE;
|
|
|
|
typedef struct _MIB_ANYCASTIPADDRESS_ROW {
|
|
SOCKADDR_INET Address;
|
|
NET_LUID InterfaceLuid;
|
|
NET_IFINDEX InterfaceIndex;
|
|
SCOPE_ID ScopeId;
|
|
} MIB_ANYCASTIPADDRESS_ROW,*PMIB_ANYCASTIPADDRESS_ROW;
|
|
|
|
typedef struct _MIB_ANYCASTIPADDRESS_TABLE {
|
|
ULONG NumEntries;
|
|
MIB_ANYCASTIPADDRESS_ROW Table[ANY_SIZE];
|
|
} MIB_ANYCASTIPADDRESS_TABLE,*PMIB_ANYCASTIPADDRESS_TABLE;
|
|
|
|
typedef struct _MIB_MULTICASTIPADDRESS_ROW {
|
|
SOCKADDR_INET Address;
|
|
NET_IFINDEX InterfaceIndex;
|
|
NET_LUID InterfaceLuid;
|
|
SCOPE_ID ScopeId;
|
|
} MIB_MULTICASTIPADDRESS_ROW,*PMIB_MULTICASTIPADDRESS_ROW;
|
|
|
|
typedef struct _MIB_MULTICASTIPADDRESS_TABLE {
|
|
ULONG NumEntries;
|
|
MIB_MULTICASTIPADDRESS_ROW Table[ANY_SIZE];
|
|
} MIB_MULTICASTIPADDRESS_TABLE,*PMIB_MULTICASTIPADDRESS_TABLE;
|
|
|
|
typedef struct _IP_ADDRESS_PREFIX {
|
|
SOCKADDR_INET Prefix;
|
|
UINT8 PrefixLength;
|
|
} IP_ADDRESS_PREFIX,*PIP_ADDRESS_PREFIX;
|
|
|
|
typedef struct _MIB_IPFORWARD_ROW2 {
|
|
NET_LUID InterfaceLuid;
|
|
NET_IFINDEX InterfaceIndex;
|
|
IP_ADDRESS_PREFIX DestinationPrefix;
|
|
SOCKADDR_INET NextHop;
|
|
UCHAR SitePrefixLength;
|
|
ULONG ValidLifetime;
|
|
ULONG PreferredLifetime;
|
|
ULONG Metric;
|
|
NL_ROUTE_PROTOCOL Protocol;
|
|
BOOLEAN Loopback;
|
|
BOOLEAN AutoconfigureAddress;
|
|
BOOLEAN Publish;
|
|
BOOLEAN Immortal;
|
|
ULONG Age;
|
|
NL_ROUTE_ORIGIN Origin;
|
|
} MIB_IPFORWARD_ROW2,*PMIB_IPFORWARD_ROW2;
|
|
|
|
typedef struct _MIB_IPFORWARD_TABLE2 {
|
|
ULONG NumEntries;
|
|
MIB_IPFORWARD_ROW2 Table[ANY_SIZE];
|
|
} MIB_IPFORWARD_TABLE2,*PMIB_IPFORWARD_TABLE2;
|
|
|
|
typedef struct _MIB_IPPATH_ROW {
|
|
SOCKADDR_INET Source;
|
|
SOCKADDR_INET Destination;
|
|
NET_LUID InterfaceLuid;
|
|
NET_IFINDEX InterfaceIndex;
|
|
SOCKADDR_INET CurrentNextHop;
|
|
ULONG PathMtu;
|
|
ULONG RttMean;
|
|
ULONG RttDeviation;
|
|
__C89_NAMELESS union {
|
|
ULONG LastReachable;
|
|
ULONG LastUnreachable;
|
|
};
|
|
BOOLEAN IsReachable;
|
|
ULONG64 LinkTransmitSpeed;
|
|
ULONG64 LinkReceiveSpeed;
|
|
} MIB_IPPATH_ROW,*PMIB_IPPATH_ROW;
|
|
|
|
typedef struct _MIB_IPPATH_TABLE {
|
|
ULONG NumEntries;
|
|
MIB_IPPATH_ROW Table[ANY_SIZE];
|
|
} MIB_IPPATH_TABLE,*PMIB_IPPATH_TABLE;
|
|
|
|
typedef struct _MIB_IPNET_ROW2 {
|
|
SOCKADDR_INET Address;
|
|
NET_IFINDEX InterfaceIndex;
|
|
NET_LUID InterfaceLuid;
|
|
UCHAR PhysicalAddress[IF_MAX_PHYS_ADDRESS_LENGTH];
|
|
ULONG PhysicalAddressLength;
|
|
NL_NEIGHBOR_STATE State;
|
|
__C89_NAMELESS union {
|
|
__C89_NAMELESS struct {
|
|
BOOLEAN IsRouter : 1;
|
|
BOOLEAN IsUnreachable : 1;
|
|
};
|
|
UCHAR Flags;
|
|
};
|
|
union {
|
|
ULONG LastReachable;
|
|
ULONG LastUnreachable;
|
|
} ReachabilityTime;
|
|
} MIB_IPNET_ROW2, *PMIB_IPNET_ROW2;
|
|
|
|
typedef struct _MIB_IPNET_TABLE2 {
|
|
ULONG NumEntries;
|
|
MIB_IPNET_ROW2 Table[ANY_SIZE];
|
|
} MIB_IPNET_TABLE2, *PMIB_IPNET_TABLE2;
|
|
|
|
typedef VOID (NETIOAPI_API_ *PIPINTERFACE_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPINTERFACE_ROW Row, MIB_NOTIFICATION_TYPE NotificationType);
|
|
typedef VOID (NETIOAPI_API_ *PUNICAST_IPADDRESS_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_ROW Row, MIB_NOTIFICATION_TYPE NotificationType);
|
|
typedef VOID (NETIOAPI_API_ *PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK) (PVOID CallerContext, PMIB_UNICASTIPADDRESS_TABLE AddressTable);
|
|
|
|
typedef VOID (NETIOAPI_API_ *PTEREDO_PORT_CHANGE_CALLBACK) (PVOID CallerContext, USHORT Port, MIB_NOTIFICATION_TYPE NotificationType);
|
|
typedef VOID (NETIOAPI_API_ *PIPFORWARD_CHANGE_CALLBACK) (PVOID CallerContext, PMIB_IPFORWARD_ROW2 Row, MIB_NOTIFICATION_TYPE NotificationType);
|
|
|
|
NETIO_STATUS NETIOAPI_API_ GetIfEntry2 (PMIB_IF_ROW2 Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetIfTable2 (PMIB_IF_TABLE2 *Table);
|
|
NETIO_STATUS NETIOAPI_API_ GetIfTable2Ex (MIB_IF_TABLE_LEVEL Level, PMIB_IF_TABLE2 *Table);
|
|
NETIO_STATUS NETIOAPI_API_ GetIfStackTable (PMIB_IFSTACK_TABLE *Table);
|
|
NETIO_STATUS NETIOAPI_API_ GetInvertedIfStackTable (PMIB_INVERTEDIFSTACK_TABLE *Table);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpInterfaceTable (ADDRESS_FAMILY Family, PMIB_IPINTERFACE_TABLE *Table);
|
|
VOID NETIOAPI_API_ InitializeIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
|
|
NETIO_STATUS NETIOAPI_API_ NotifyIpInterfaceChange (ADDRESS_FAMILY Family, PIPINTERFACE_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
|
|
NETIO_STATUS NETIOAPI_API_ SetIpInterfaceEntry (PMIB_IPINTERFACE_ROW Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpNetworkConnectionBandwidthEstimates (NET_IFINDEX InterfaceIndex, ADDRESS_FAMILY AddressFamily, PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES BandwidthEstimates);
|
|
NETIO_STATUS NETIOAPI_API_ CreateUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
|
|
NETIO_STATUS NETIOAPI_API_ DeleteUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table);
|
|
VOID NETIOAPI_API_ InitializeUnicastIpAddressEntry (PMIB_UNICASTIPADDRESS_ROW Row);
|
|
NETIO_STATUS NETIOAPI_API_ NotifyUnicastIpAddressChange (ADDRESS_FAMILY Family, PUNICAST_IPADDRESS_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
|
|
NETIO_STATUS NETIOAPI_API_ CreateAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row);
|
|
NETIO_STATUS NETIOAPI_API_ DeleteAnycastIpAddressEntry (CONST MIB_ANYCASTIPADDRESS_ROW *Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressEntry (PMIB_ANYCASTIPADDRESS_ROW Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetAnycastIpAddressTable (ADDRESS_FAMILY Family, PMIB_ANYCASTIPADDRESS_TABLE *Table);
|
|
NETIO_STATUS NETIOAPI_API_ NotifyStableUnicastIpAddressTable (ADDRESS_FAMILY Family, PMIB_UNICASTIPADDRESS_TABLE *Table, PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK CallerCallback, PVOID CallerContext, HANDLE *NotificationHandle);
|
|
NETIO_STATUS NETIOAPI_API_ SetUnicastIpAddressEntry (CONST MIB_UNICASTIPADDRESS_ROW *Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressEntry (PMIB_MULTICASTIPADDRESS_ROW Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetMulticastIpAddressTable (ADDRESS_FAMILY Family, PMIB_MULTICASTIPADDRESS_TABLE *Table);
|
|
NETIO_STATUS NETIOAPI_API_ CreateIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row);
|
|
NETIO_STATUS NETIOAPI_API_ DeleteIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetBestRoute2 (NET_LUID *InterfaceLuid, NET_IFINDEX InterfaceIndex, CONST SOCKADDR_INET *SourceAddress, CONST SOCKADDR_INET *DestinationAddress, ULONG AddressSortOptions, PMIB_IPFORWARD_ROW2 BestRoute, SOCKADDR_INET *BestSourceAddress);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpForwardEntry2 (PMIB_IPFORWARD_ROW2 Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpForwardTable2 (ADDRESS_FAMILY Family, PMIB_IPFORWARD_TABLE2 *Table);
|
|
VOID NETIOAPI_API_ InitializeIpForwardEntry (PMIB_IPFORWARD_ROW2 Row);
|
|
NETIO_STATUS NETIOAPI_API_ NotifyRouteChange2 (ADDRESS_FAMILY AddressFamily, PIPFORWARD_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
|
|
NETIO_STATUS NETIOAPI_API_ SetIpForwardEntry2 (CONST MIB_IPFORWARD_ROW2 *Route);
|
|
NETIO_STATUS NETIOAPI_API_ FlushIpPathTable (ADDRESS_FAMILY Family);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpPathEntry (PMIB_IPPATH_ROW Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpPathTable (ADDRESS_FAMILY Family, PMIB_IPPATH_TABLE *Table);
|
|
NETIO_STATUS NETIOAPI_API_ CreateIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row);
|
|
NETIO_STATUS NETIOAPI_API_ DeleteIpNetEntry2 (CONST MIB_IPNET_ROW2 *Row);
|
|
NETIO_STATUS NETIOAPI_API_ FlushIpNetTable2 (ADDRESS_FAMILY Family, NET_IFINDEX InterfaceIndex);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpNetEntry2 (PMIB_IPNET_ROW2 Row);
|
|
NETIO_STATUS NETIOAPI_API_ GetIpNetTable2 (ADDRESS_FAMILY Family, PMIB_IPNET_TABLE2 *Table);
|
|
NETIO_STATUS NETIOAPI_API_ ResolveIpNetEntry2 (PMIB_IPNET_ROW2 Row, CONST SOCKADDR_INET *SourceAddress);
|
|
NETIO_STATUS NETIOAPI_API_ SetIpNetEntry2 (PMIB_IPNET_ROW2 Row);
|
|
NETIO_STATUS NETIOAPI_API_ NotifyTeredoPortChange (PTEREDO_PORT_CHANGE_CALLBACK Callback, PVOID CallerContext, BOOLEAN InitialNotification, HANDLE *NotificationHandle);
|
|
NETIO_STATUS NETIOAPI_API_ GetTeredoPort (USHORT *Port);
|
|
NETIO_STATUS NETIOAPI_API_ CancelMibChangeNotify2 (HANDLE NotificationHandle);
|
|
VOID NETIOAPI_API_ FreeMibTable (PVOID Memory);
|
|
NETIO_STATUS NETIOAPI_API_ CreateSortedAddressPairs (const PSOCKADDR_IN6 SourceAddressList, ULONG SourceAddressCount, const PSOCKADDR_IN6 DestinationAddressList, ULONG DestinationAddressCount, ULONG AddressSortOptions, PSOCKADDR_IN6_PAIR *SortedAddressPairList, ULONG *SortedAddressPairCount);
|
|
#endif
|
|
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidA (CONST CHAR *InterfaceName, NET_LUID *InterfaceLuid);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceNameToLuidW (CONST WCHAR *InterfaceName, NET_LUID *InterfaceLuid);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameA (CONST NET_LUID *InterfaceLuid, PSTR InterfaceName, SIZE_T Length);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToNameW (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceName, SIZE_T Length);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToIndex (CONST NET_LUID *InterfaceLuid, PNET_IFINDEX InterfaceIndex);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceIndexToLuid (NET_IFINDEX InterfaceIndex, PNET_LUID InterfaceLuid);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToAlias (CONST NET_LUID *InterfaceLuid, PWSTR InterfaceAlias, SIZE_T Length);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceAliasToLuid (CONST WCHAR *InterfaceAlias, PNET_LUID InterfaceLuid);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceLuidToGuid (CONST NET_LUID *InterfaceLuid, GUID *InterfaceGuid);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertInterfaceGuidToLuid (CONST GUID *InterfaceGuid, PNET_LUID InterfaceLuid);
|
|
NET_IFINDEX NETIOAPI_API_ if_nametoindex (PCSTR InterfaceName);
|
|
PCHAR NETIOAPI_API_ if_indextoname (NET_IFINDEX InterfaceIndex, PCHAR InterfaceName);
|
|
NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetCurrentThreadCompartmentId (VOID);
|
|
NETIO_STATUS NETIOAPI_API_ SetCurrentThreadCompartmentId (NET_IF_COMPARTMENT_ID CompartmentId);
|
|
NET_IF_COMPARTMENT_ID NETIOAPI_API_ GetSessionCompartmentId (ULONG SessionId);
|
|
NETIO_STATUS NETIOAPI_API_ SetSessionCompartmentId (ULONG SessionId, NET_IF_COMPARTMENT_ID CompartmentId);
|
|
NETIO_STATUS NETIOAPI_API_ GetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, PNET_IF_COMPARTMENT_ID CompartmentId, PULONG SiteId, PWCHAR NetworkName, ULONG Length);
|
|
NETIO_STATUS NETIOAPI_API_ SetNetworkInformation (CONST NET_IF_NETWORK_GUID *NetworkGuid, NET_IF_COMPARTMENT_ID CompartmentId, CONST WCHAR *NetworkName);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertLengthToIpv4Mask (ULONG MaskLength, PULONG Mask);
|
|
NETIO_STATUS NETIOAPI_API_ ConvertIpv4MaskToLength (ULONG Mask, PUINT8 MaskLength);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
#endif
|