318 lines
11 KiB
C
318 lines
11 KiB
C
/*
|
|
* ifdef.h Interface definitions
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef _IFDEF_
|
|
#define _IFDEF_
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#include <ipifcons.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Network interface object identifier data type */
|
|
typedef ULONG32 NET_IF_OBJECT_ID;
|
|
typedef ULONG32 *PNET_IF_OBJECT_ID;
|
|
|
|
/* Network interface compartment identifier data type */
|
|
typedef UINT32 NET_IF_COMPARTMENT_ID;
|
|
typedef UINT32 *PNET_IF_COMPARTMENT_ID;
|
|
|
|
/* Network interface network GUID data type */
|
|
typedef GUID NET_IF_NETWORK_GUID;
|
|
typedef GUID *PNET_IF_NETWORK_GUID;
|
|
|
|
/* Network interface index and type data types */
|
|
typedef ULONG NET_IFINDEX;
|
|
typedef ULONG *PNET_IFINDEX;
|
|
typedef UINT16 NET_IFTYPE;
|
|
typedef UINT16 *PNET_IFTYPE;
|
|
typedef NET_IFINDEX IF_INDEX;
|
|
typedef NET_IFINDEX *PIF_INDEX;
|
|
|
|
/* Network interface operational status flags */
|
|
#define NET_IF_OPER_STATUS_DOWN_NOT_AUTHENTICATED 0x00000001L
|
|
#define NET_IF_OPER_STATUS_DOWN_NOT_MEDIA_CONNECTED 0x00000002L
|
|
#define NET_IF_OPER_STATUS_DORMANT_PAUSED 0x00000004L
|
|
#define NET_IF_OPER_STATUS_DORMANT_LOW_POWER 0x00000008L
|
|
|
|
/* Network interface compartment identifier types */
|
|
#define NET_IF_COMPARTMENT_ID_UNSPECIFIED 0
|
|
#define NET_IF_COMPARTMENT_ID_PRIMARY 1
|
|
|
|
/* Network interface object identifier flags */
|
|
#define NET_IF_OID_IF_ALIAS 0x00000001L
|
|
#define NET_IF_OID_COMPARTMENT_ID 0x00000002L
|
|
#define NET_IF_OID_NETWORK_GUID 0x00000003L
|
|
#define NET_IF_OID_IF_ENTRY 0x00000004L
|
|
|
|
/* Macros relating to network GUIDs */
|
|
#define NET_SET_UNSPECIFIED_NETWORK_GUID( x )
|
|
#define NET_IS_UNSPECIFIED_NETWORK_GUID( x )
|
|
|
|
/* Network site identifiers */
|
|
#define NET_SITEID_UNSPECIFIED 0L
|
|
#define NET_SITEID_MAXUSER 0x07FFFFFFL
|
|
#define NET_SITEID_MAXSYSTEM 0x0FFFFFFFL
|
|
|
|
/* Network interface index special value */
|
|
#define NET_IFINDEX_UNSPECIFIED 0L
|
|
#define IFI_UNSPECIFIED NET_IFINDEX_UNSPECIFIED
|
|
|
|
/* Network interface LUID special value */
|
|
#define NET_IFLUID_UNSPECIFIED 0
|
|
|
|
/* Network interface information flags */
|
|
#define NIIF_HARDWARE_INTERFACE 0x00000001L
|
|
#define NIIF_FILTER_INTERFACE 0x00000002L
|
|
#define NIIF_NDIS_WDM_INTERFACE 0x00000020L
|
|
#define NIIF_NDIS_ENDPOINT_INTERFACE 0x00000040L
|
|
#define NIIF_NDIS_ISCSI_INTERFACE 0x00000080L
|
|
#define NIIF_WAN_TUNNEL_TYPE_UNKNOWN 0xFFFFFFFFL
|
|
|
|
/* Network interface link speed special value */
|
|
#define NET_IF_LINK_SPEED_UNKNOWN 0xFFFFFFFFFFFFFFFFLL
|
|
|
|
/* Network physical location special values */
|
|
#define NET_BUS_NUMBER_UNKNOWN 0xFFFFFFFFL
|
|
#define NET_SLOT_NUMBER_UNKNOWN 0xFFFFFFFFL
|
|
#define NET_FUNCTION_NUMBER_UNKNOWN 0xFFFFFFFFL
|
|
|
|
/* Interface maximum string size */
|
|
#define IF_MAX_STRING_SIZE 256
|
|
|
|
/* Interface maximum physical address length */
|
|
#define IF_MAX_PHYS_ADDRESS_LENGTH 32
|
|
|
|
/* Network interface administrative status values */
|
|
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;
|
|
typedef NET_IF_ADMIN_STATUS *PNET_IF_ADMIN_STATUS;
|
|
|
|
/* Network interface operational status values */
|
|
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;
|
|
typedef NET_IF_OPER_STATUS *PNET_IF_OPER_STATUS;
|
|
|
|
/* Network interface receive address types */
|
|
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;
|
|
|
|
/* Network interface receive address */
|
|
typedef struct _NET_IF_RCV_ADDRESS_LH {
|
|
NET_IF_RCV_ADDRESS_TYPE ifRcvAddressType;
|
|
USHORT ifRcvAddressLength;
|
|
USHORT ifRcvAddressOffset;
|
|
} NET_IF_RCV_ADDRESS_LH;
|
|
typedef NET_IF_RCV_ADDRESS_LH *PNET_IF_RCV_ADDRESS_LH;
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef NET_IF_RCV_ADDRESS_LH NET_IF_RCV_ADDRESS;
|
|
typedef NET_IF_RCV_ADDRESS *PNET_IF_RCV_ADDRESS;
|
|
#endif
|
|
|
|
/* Network interface alias */
|
|
typedef struct _NET_IF_ALIAS_LH {
|
|
USHORT ifAliasLength;
|
|
USHORT ifAliasOffset;
|
|
} NET_IF_ALIAS_LH;
|
|
typedef NET_IF_ALIAS_LH *PNET_IF_ALIAS_LH;
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef NET_IF_ALIAS_LH NET_IF_ALIAS;
|
|
typedef NET_IF_ALIAS *PNET_IF_ALIAS;
|
|
#endif
|
|
|
|
/* Network LUID */
|
|
typedef union _NET_LUID_LH {
|
|
ULONG64 Value;
|
|
struct {
|
|
ULONG64 Reserved : 24;
|
|
ULONG64 NetLuidIndex : 24;
|
|
ULONG64 IfType : 16;
|
|
} Info;
|
|
} NET_LUID_LH;
|
|
typedef 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;
|
|
|
|
/* Network interface access types */
|
|
typedef enum _NET_IF_ACCESS_TYPE {
|
|
NET_IF_ACCESS_LOOPBACK = 1,
|
|
NET_IF_ACCESS_BROADCAST = 2,
|
|
NET_IF_ACCESS_POINT_TO_POINT = 3,
|
|
NET_IF_ACCESS_POINT_TO_MULTI_POINT = 4,
|
|
NET_IF_ACCESS_MAXIMUM = 5
|
|
} NET_IF_ACCESS_TYPE;
|
|
typedef NET_IF_ACCESS_TYPE *PNET_IF_ACCESS_TYPE;
|
|
|
|
/* Network interface direction 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;
|
|
typedef NET_IF_DIRECTION_TYPE *PNET_IF_DIRECTION_TYPE;
|
|
|
|
/* Network interface connection 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;
|
|
typedef NET_IF_CONNECTION_TYPE *PNET_IF_CONNECTION_TYPE;
|
|
|
|
/* Network interface media connection states */
|
|
typedef enum _NET_IF_MEDIA_CONNECT_STATE {
|
|
MediaConnectStateUnknown = 0,
|
|
MediaConnectStateConnected = 1,
|
|
MediaConnectStateDisconnected = 2
|
|
} NET_IF_MEDIA_CONNECT_STATE;
|
|
typedef NET_IF_MEDIA_CONNECT_STATE *PNET_IF_MEDIA_CONNECT_STATE;
|
|
|
|
/* Network interface media duplex states */
|
|
typedef enum _NET_IF_MEDIA_DUPLEX_STATE {
|
|
MediaDuplexStateUnknown = 0,
|
|
MediaDuplexStateHalf = 1,
|
|
MediaDuplexStateFull = 2
|
|
} NET_IF_MEDIA_DUPLEX_STATE;
|
|
typedef NET_IF_MEDIA_DUPLEX_STATE *PNET_IF_MEDIA_DUPLEX_STATE;
|
|
|
|
/* Network physical location */
|
|
typedef struct _NET_PHYSICAL_LOCATION_LH {
|
|
ULONG BusNumber;
|
|
ULONG SlotNumber;
|
|
ULONG FunctionNumber;
|
|
} NET_PHYSICAL_LOCATION_LH;
|
|
typedef NET_PHYSICAL_LOCATION_LH *PNET_PHYSICAL_LOCATION_LH;
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef NET_PHYSICAL_LOCATION_LH NET_PHYSICAL_LOCATION;
|
|
typedef NET_PHYSICAL_LOCATION *PNET_PHYSICAL_LOCATION;
|
|
#endif
|
|
|
|
/* Interface counted string */
|
|
typedef struct _IF_COUNTED_STRING_LH {
|
|
USHORT Length;
|
|
WCHAR String[IF_MAX_STRING_SIZE + 1];
|
|
} IF_COUNTED_STRING_LH;
|
|
typedef IF_COUNTED_STRING_LH *PIF_COUNTED_STRING_LH;
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
|
|
typedef IF_COUNTED_STRING *PIF_COUNTED_STRING;
|
|
#endif
|
|
|
|
/* Interface maximum physical address length */
|
|
typedef struct _IF_PHYSICAL_ADDRESS_LH {
|
|
USHORT Length;
|
|
UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH];
|
|
} IF_PHYSICAL_ADDRESS_LH;
|
|
typedef IF_PHYSICAL_ADDRESS_LH *PIF_PHYSICAL_ADDRESS_LH;
|
|
#if (NTDDI_VERSION >= 0x06000000)
|
|
typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
|
|
typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS;
|
|
#endif
|
|
|
|
/* Tunnel types */
|
|
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 TUNNEL_TYPE *PTUNNEL_TYPE;
|
|
|
|
/* Interface administrative states */
|
|
typedef enum _IF_ADMINISTRATIVE_STATE {
|
|
IF_ADMINISTRATIVE_DISABLED = 0,
|
|
IF_ADMINISTRATIVE_ENABLED = 1,
|
|
IF_ADMINISTRATIVE_DEMANDDIAL = 2
|
|
} IF_ADMINISTRATIVE_STATE;
|
|
typedef IF_ADMINISTRATIVE_STATE *PIF_ADMINISTRATIVE_STATE;
|
|
|
|
/* Interface operational status values */
|
|
typedef enum {
|
|
IfOperStatusUp = 1,
|
|
IfOperStatusDown = 2,
|
|
IfOperStatusTesting = 3,
|
|
IfOperStatusUnknown = 4,
|
|
IfOperStatusDormant = 5,
|
|
IfOperStatusNotPresent = 6,
|
|
IfOperStatusLowerLayerDown = 7
|
|
} IF_OPER_STATUS;
|
|
|
|
/* NDIS interface information */
|
|
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;
|
|
typedef NDIS_INTERFACE_INFORMATION *PNDIS_INTERFACE_INFORMATION;
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _IFDEF_ */
|