|  | /* 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*/ |