115 lines
3.9 KiB
C
115 lines
3.9 KiB
C
/*
|
|
* Copyright 2015 Hans Leidekker for CodeWeavers
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#ifndef __WINE_NETIOAPI_H
|
|
#define __WINE_NETIOAPI_H
|
|
|
|
#include <ntddndis.h>
|
|
|
|
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[1];
|
|
} MIB_IF_TABLE2, *PMIB_IF_TABLE2;
|
|
|
|
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;
|
|
|
|
DWORD WINAPI ConvertInterfaceGuidToLuid(const GUID*,NET_LUID*);
|
|
DWORD WINAPI ConvertInterfaceIndexToLuid(NET_IFINDEX,NET_LUID*);
|
|
DWORD WINAPI ConvertInterfaceLuidToGuid(const NET_LUID*,GUID*);
|
|
DWORD WINAPI ConvertInterfaceLuidToIndex(const NET_LUID*,NET_IFINDEX*);
|
|
DWORD WINAPI ConvertInterfaceLuidToNameA(const NET_LUID*,char*,SIZE_T);
|
|
DWORD WINAPI ConvertInterfaceLuidToNameW(const NET_LUID*,WCHAR*,SIZE_T);
|
|
DWORD WINAPI ConvertInterfaceNameToLuidA(const char*,NET_LUID*);
|
|
DWORD WINAPI ConvertInterfaceNameToLuidW(const WCHAR*,NET_LUID*);
|
|
void WINAPI FreeMibTable(void*);
|
|
DWORD WINAPI GetIfEntry2(MIB_IF_ROW2*);
|
|
DWORD WINAPI GetIfTable2(MIB_IF_TABLE2**);
|
|
DWORD WINAPI GetUnicastIpAddressEntry(MIB_UNICASTIPADDRESS_ROW*);
|
|
|
|
#endif /* __WINE_NETIOAPI_H */
|