wine-wine/include/ifdef.h

230 lines
8.1 KiB
C

/* WINE ifdef.h
* Copyright 2010 Juan Lang
*
* 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_IFDEF_H
#define WINE_IFDEF_H
#include <ipifcons.h>
typedef ULONG32 NET_IF_OBJECT_ID, *PNET_IF_OBJECT_ID;
typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID;
typedef GUID NET_IF_NETWORK_GUID, *PNET_IF_NETWORK_GUID;
typedef ULONG NET_IFINDEX, *PNET_IFINDEX;
typedef NET_IFINDEX IF_INDEX, *PIF_INDEX;
typedef UINT16 NET_IFTYPE, *PNET_IFTYPE;
#define NET_IF_OPER_STATUS_DOWN_NOT_AUTHENTICATED 0x00000001
#define NET_IF_OPER_STATUS_DOWN_NOT_MEDIA_CONNECTED 0x00000002
#define NET_IF_OPER_STATUS_DORMANT_PAUSED 0x00000004
#define NET_IF_OPER_STATUS_DORMANT_LOW_POWER 0x00000008
#define NET_IF_COMPARTMENT_ID_UNSPECIFIED 0
#define NET_IF_COMPARTMENT_ID_PRIMARY 1
#define NET_IF_OID_IF_ALIAS 0x00000001
#define NET_IF_OID_COMPARTMENT_ID 0x00000002
#define NET_IF_OID_NETWORK_GUID 0x00000003
#define NET_IF_OID_IF_ENTRY 0x00000004
#define NET_SET_UNSPECIFIED_NETWORK_GUID(x)
#define NET_IS_UNSPECIFIED_NETWORK_GUID(x)
#define NET_SITEID_UNSPECIFIED 0
#define NET_SITEID_MAXUSER 0x07ffffff
#define NET_SITEID_MAXSYSTEM 0x0fffffff
#define NET_IFINDEX_UNSPECIFIED 0
#define IFI_UNSPECIFIED NET_IFINDEX_UNSPECIFIED
#define NET_IFLUID_UNSPECIFIED 0
#define NIIF_HARDWARE_INTERFACE 0x00000001
#define NIIF_FILTER_INTERFACE 0x00000002
#define NIIF_NDIS_WDM_INTERFACE 0x00000020
#define NIIF_NDIS_ENDPOINT_INTERFACE 0x00000040
#define NIIF_NDIS_ISCSI_INTERFACE 0x00000080
#define NIIF_WAN_TUNNEL_TYPE_UNKNOWN 0xffffffff
#define NET_BUS_NUMBER_UNKNOWN 0xffffffff
#define NET_SLOT_NUMBER_UNKNOWN 0xffffffff
#define NET_FUNCTION_NUMBER_UNKNOWN 0xffffffff
#define IF_MAX_STRING_SIZE 256
#define IF_MAX_PHYS_ADDRESS_LENGTH 32
typedef enum _NET_IF_ADMIN_STATUS {
NET_IF_ADMIN_STATUS_UP = 1,
NET_IF_ADMIN_STATUS_DOWN = 2,
NET_IF_ADMIN_STATUS_TESTING = 3
} NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
typedef enum _NET_IF_OPER_STATUS {
NET_IF_OPER_STATUS_UP = 1,
NET_IF_OPER_STATUS_DOWN = 2,
NET_IF_OPER_STATUS_TESTING = 3,
NET_IF_OPER_STATUS_UNKNOWN = 4,
NET_IF_OPER_STATUS_DORMANT = 5,
NET_IF_OPER_STATUS_NOT_PRESENT = 6,
NET_IF_OPER_STATUS_LOWER_LAYER_DOWN = 7
} NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS;
typedef enum _NET_IF_RCV_ADDRESS_TYPE {
NET_IF_RCV_ADDRESS_TYPE_OTHER = 1,
NET_IF_RCV_ADDRESS_TYPE_VOLATILE = 2,
NET_IF_RCV_ADDRESS_TYPE_NON_VOLATILE = 3
} NET_IF_RCV_ADDRESS_TYPE, *PNET_IF_RCV_ADDRESS_TYPE;
typedef struct _NET_IF_RCV_ADDRESS_LH {
NET_IF_RCV_ADDRESS_TYPE ifRcvAddressType;
USHORT ifRcvAddressLength;
USHORT ifRcvAddressOffset;
} NET_IF_RCV_ADDRESS_LH, *PNET_IF_RCV_ADDRESS_LH;
typedef NET_IF_RCV_ADDRESS_LH NET_IF_RCV_ADDRESS;
typedef NET_IF_RCV_ADDRESS_LH *PNET_IF_RCV_ADDRESS;
typedef union _NET_LUID_LH {
ULONG64 Value;
struct {
ULONG64 Reserved : 24;
ULONG64 NetLuidIndex : 24;
ULONG64 IfType : 16;
} Info;
} NET_LUID_LH, *PNET_LUID_LH;
typedef NET_LUID_LH NET_LUID;
typedef NET_LUID *PNET_LUID;
typedef NET_LUID IF_LUID;
typedef NET_LUID *PIF_LUID;
typedef enum _NET_IF_ACCESS_TYPE {
NET_IF_ACCESS_LOOPBACK = 1,
NET_IF_ACCESS_BROADCAST = 2,
NET_IF_ACCESS_POINT_TO_POINT = 2,
NET_IF_ACCESS_POINT_TO_MULTI_POINT = 4,
NET_IF_ACCESS_MAXIMUM = 5
} NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
typedef enum _NET_IF_DIRECTION_TYPE {
NET_IF_DIRECTION_SENDRECEIVE = 0,
NET_IF_DIRECTION_SENDONLY = 1,
NET_IF_DIRECTION_RECEIVEONLY = 2,
NET_IF_DIRECTION_MAXIMUM = 3
} NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
typedef enum _NET_IF_CONNECTION_TYPE {
NET_IF_CONNECTION_DEDICATED = 1,
NET_IF_CONNECTION_PASSIVE = 2,
NET_IF_CONNECTION_DEMAND = 3,
NET_IF_CONNECTION_MAXIMUM = 4,
} NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
typedef enum _NET_IF_MEDIA_CONNECT_STATE {
MediaConnectStateUnknown = 0,
MediaConnectStateConnected = 1,
MediaConnectStateDisconnected = 2
} NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
typedef enum _NET_IF_MEDIA_DUPLEX_STATE {
MediaDuplexStateUnknown = 0,
MediaDuplexStateHalf = 1,
MediaDuplexStateFull = 2
} NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
typedef struct _NET_PHYSICAL_LOCATION_LH {
ULONG BusNumber;
ULONG SlotNumber;
ULONG FunctionNumber;
} NET_PHYSICAL_LOCATION_LH, *PNET_PHYSICAL_LOCATION_LH;
typedef NET_PHYSICAL_LOCATION_LH NET_PHYSICAL_LOCATION;
typedef NET_PHYSICAL_LOCATION *PNET_PHYSICAL_LOCATION;
typedef struct _IF_COUNTED_STRING_LH {
USHORT Length;
WCHAR String[IF_MAX_STRING_SIZE + 1];
} IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH;
typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
typedef IF_COUNTED_STRING *PIF_COUNTED_STRING;
typedef struct _IF_PHYSICAL_ADDRESS_LH {
USHORT Length;
UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH];
} IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH;
typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS;
typedef enum {
TUNNEL_TYPE_NONE = 0,
TUNNEL_TYPE_OTHER = 1,
TUNNEL_TYPE_DIRECT = 2,
TUNNEL_TYPE_6TO4 = 11,
TUNNEL_TYPE_ISATAP = 13,
TUNNEL_TYPE_TEREDO = 14,
TUNNEL_TYPE_IPHTTPS = 15,
} TUNNEL_TYPE;
typedef enum _IF_ADMINISTRATIVE_STATE {
IF_ADMINISTRATIVE_STATE_DISABLED = 0,
IF_ADMINISTRATIVE_STATE_ENABLED = 1,
IF_ADMINISTRATIVE_STATE_DEMANDDIAL = 2
} IF_ADMINISTRATIVE_STATE, *PIF_ADMINISTRATIVE_STATE;
typedef enum {
IfOperStatusUp = 1,
IfOperStatusDown,
IfOperStatusTesting,
IfOperStatusUnknown,
IfOperStatusDormant,
IfOperStatusNotPresent,
IfOperStatusLowerLayerDown
} IF_OPER_STATUS;
typedef struct _NDIS_INTERFACE_INFORMATION {
NET_IF_OPER_STATUS ifOperStatus;
ULONG ifOperStatusFlags;
NET_IF_MEDIA_CONNECT_STATE MediaConnectState;
NET_IF_MEDIA_DUPLEX_STATE MediaDuplexState;
ULONG ifMtu;
BOOLEAN ifPromiscuousMode;
BOOLEAN ifDeviceWakeUpEnable;
ULONG64 XmitLinkSpeed;
ULONG64 RcvLinkSpeed;
ULONG64 ifLastChange;
ULONG64 ifCounterDiscontinuityTime;
ULONG64 ifInUnknownProtos;
ULONG64 ifInDiscards;
ULONG64 ifInErrors;
ULONG64 ifHCInOctets;
ULONG64 ifHCInUcastPkts;
ULONG64 ifHCInMulticastPkts;
ULONG64 ifHCInBroadcastPkts;
ULONG64 ifHCOutOctets;
ULONG64 ifHCOutUcastPkts;
ULONG64 ifHCOutMulticastPkts;
ULONG64 ifHCOutBroadcastPkts;
ULONG64 ifOutErrors;
ULONG64 ifOutDiscards;
ULONG64 ifHCInUcastOctets;
ULONG64 ifHCInMulticastOctets;
ULONG64 ifHCInBroadcastOctets;
ULONG64 ifHCOutUcastOctets;
ULONG64 ifHCOutMulticastOctets;
ULONG64 ifHCOutBroadcastOctets;
NET_IF_COMPARTMENT_ID CompartmentId;
ULONG SupportedStatistics;
} NDIS_INTERFACE_INFORMATION, *PNDIS_INTERFACE_INFORMATION;
#endif /* WINE_IFDEF_H*/