ifdef.h (3516B) - Raw
1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 #ifndef _INC_IFDEF 7 #define _INC_IFDEF 8 9 #include <ipifcons.h> 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 #define IF_MAX_STRING_SIZE 256 16 #define IF_MAX_PHYS_ADDRESS_LENGTH 32 17 18 typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID; 19 20 typedef ULONG NET_IFINDEX, *PNET_IFINDEX; 21 typedef UINT16 NET_IFTYPE, *PNET_IFTYPE; 22 23 #define NET_IFINDEX_UNSPECIFIED (NET_IFINDEX)(0) 24 25 typedef NET_IFINDEX IF_INDEX, *PIF_INDEX; 26 27 typedef GUID NET_IF_NETWORK_GUID; 28 29 typedef enum _IF_OPER_STATUS { 30 IfOperStatusUp = 1, 31 IfOperStatusDown, 32 IfOperStatusTesting, 33 IfOperStatusUnknown, 34 IfOperStatusDormant, 35 IfOperStatusNotPresent, 36 IfOperStatusLowerLayerDown 37 } IF_OPER_STATUS; 38 39 typedef enum _NET_IF_OPER_STATUS { 40 NET_IF_OPER_STATUS_UP = 1, 41 NET_IF_OPER_STATUS_DOWN, 42 NET_IF_OPER_STATUS_TESTING, 43 NET_IF_OPER_STATUS_UNKNOWN, 44 NET_IF_OPER_STATUS_DORMANT, 45 NET_IF_OPER_STATUS_NOT_PRESENT, 46 NET_IF_OPER_STATUS_LOWER_LAYER_DOWN 47 } NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS; 48 49 typedef enum _NET_IF_ADMIN_STATUS { 50 NET_IF_ADMIN_STATUS_UP = 1, 51 NET_IF_ADMIN_STATUS_DOWN, 52 NET_IF_ADMIN_STATUS_TESTING 53 } NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS; 54 55 typedef enum _NET_IF_MEDIA_CONNECT_STATE { 56 MediaConnectStateUnknown, 57 MediaConnectStateConnected, 58 MediaConnectStateDisconnected 59 } NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE; 60 61 typedef enum _NET_IF_ACCESS_TYPE { 62 NET_IF_ACCESS_LOOPBACK = 1, 63 NET_IF_ACCESS_BROADCAST, 64 NET_IF_ACCESS_POINT_TO_POINT, 65 NET_IF_ACCESS_POINT_TO_MULTI_POINT, 66 NET_IF_ACCESS_MAXIMUM 67 } NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE; 68 69 typedef enum _NET_IF_CONNECTION_TYPE { 70 NET_IF_CONNECTION_DEDICATED = 1, 71 NET_IF_CONNECTION_PASSIVE, 72 NET_IF_CONNECTION_DEMAND, 73 NET_IF_CONNECTION_MAXIMUM 74 } NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE; 75 76 typedef enum _NET_IF_DIRECTION_TYPE { 77 NET_IF_DIRECTION_SENDRECEIVE, 78 NET_IF_DIRECTION_SENDONLY, 79 NET_IF_DIRECTION_RECEIVEONLY, 80 NET_IF_DIRECTION_MAXIMUM 81 } NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE; 82 83 typedef enum _NET_IF_MEDIA_DUPLEX_STATE { 84 MediaDuplexStateUnknown, 85 MediaDuplexStateHalf, 86 MediaDuplexStateFull 87 } NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE; 88 89 typedef enum _TUNNEL_TYPE { 90 TUNNEL_TYPE_NONE = 0, 91 TUNNEL_TYPE_OTHER = 1, 92 TUNNEL_TYPE_DIRECT = 2, 93 TUNNEL_TYPE_6TO4 = 11, 94 TUNNEL_TYPE_ISATAP = 13, 95 TUNNEL_TYPE_TEREDO = 14, 96 TUNNEL_TYPE_IPHTTPS = 15 97 } TUNNEL_TYPE, *PTUNNEL_TYPE; 98 99 typedef union _NET_LUID { 100 ULONG64 Value; 101 __C89_NAMELESS struct { /* bitfield with 64 bit types. */ 102 ULONG64 Reserved :24; 103 ULONG64 NetLuidIndex :24; 104 ULONG64 IfType :16; 105 } Info; 106 } NET_LUID, *PNET_LUID; 107 108 typedef NET_LUID IF_LUID, *PIF_LUID; 109 110 typedef struct _IF_COUNTED_STRING_LH { 111 USHORT Length; 112 WCHAR String[IF_MAX_STRING_SIZE + 1]; 113 } IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH; 114 typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING; 115 typedef IF_COUNTED_STRING *PIF_COUNTED_STRING; 116 117 typedef struct _IF_PHYSICAL_ADDRESS_LH { 118 USHORT Length; 119 UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH]; 120 } IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH; 121 typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS; 122 typedef IF_PHYSICAL_ADDRESS *PIF_PHYSICAL_ADDRESS; 123 124 #ifdef __cplusplus 125 } 126 #endif 127 128 #endif /* _INC_IFDEF */ 129