/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef _INC_IFDEF #define _INC_IFDEF #include #ifdef __cplusplus extern "C" { #endif #define IF_MAX_STRING_SIZE 256 #define IF_MAX_PHYS_ADDRESS_LENGTH 32 typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID; typedef ULONG NET_IFINDEX, *PNET_IFINDEX; typedef UINT16 NET_IFTYPE, *PNET_IFTYPE; typedef NET_IFINDEX IF_INDEX, *PIF_INDEX; typedef GUID NET_IF_NETWORK_GUID; typedef enum _IF_OPER_STATUS { IfOperStatusUp = 1, IfOperStatusDown, IfOperStatusTesting, IfOperStatusUnknown, IfOperStatusDormant, IfOperStatusNotPresent, IfOperStatusLowerLayerDown } IF_OPER_STATUS; typedef enum _NET_IF_ADMIN_STATUS { NET_IF_ADMIN_STATUS_UP = 1, NET_IF_ADMIN_STATUS_DOWN, NET_IF_ADMIN_STATUS_TESTING } NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS; typedef enum _NET_IF_MEDIA_CONNECT_STATE { MediaConnectStateUnknown, MediaConnectStateConnected, MediaConnectStateDisconnected } NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE; typedef enum _NET_IF_ACCESS_TYPE { NET_IF_ACCESS_LOOPBACK = 1, NET_IF_ACCESS_BROADCAST, NET_IF_ACCESS_POINT_TO_POINT, NET_IF_ACCESS_POINT_TO_MULTI_POINT, NET_IF_ACCESS_MAXIMUM } NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE; typedef enum _NET_IF_CONNECTION_TYPE { NET_IF_CONNECTION_DEDICATED = 1, NET_IF_CONNECTION_PASSIVE, NET_IF_CONNECTION_DEMAND, NET_IF_CONNECTION_MAXIMUM } NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE; typedef enum _NET_IF_DIRECTION_TYPE { NET_IF_DIRECTION_SENDRECEIVE, NET_IF_DIRECTION_SENDONLY, NET_IF_DIRECTION_RECEIVEONLY, NET_IF_DIRECTION_MAXIMUM } NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE; typedef enum _NET_IF_MEDIA_DUPLEX_STATE { MediaDuplexStateUnknown, MediaDuplexStateHalf, MediaDuplexStateFull } NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE; typedef enum _TUNNEL_TYPE { 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, *PTUNNEL_TYPE; #include typedef union _NET_LUID { ULONG64 Value; __C89_NAMELESS struct { /* bitfield with 64 bit types. */ ULONG64 Reserved :24; ULONG64 NetLuidIndex :24; ULONG64 IfType :16; } Info; } NET_LUID, *PNET_LUID; #include typedef NET_LUID IF_LUID, *PIF_LUID; #ifdef __cplusplus } #endif #endif /* _INC_IFDEF */