| 1 | /** | 
 
 
 
 
 | 2 | * This file is part of the mingw-w64 runtime package. | 
 
 
 
 
 | 3 | * No warranty is given; refer to the file DISCLAIMER within this package. | 
 
 
 
 
 | 4 | */ | 
 
 
 
 
 | 5 |  | 
 
 
 
 
 | 6 | #ifndef _NLDEF_ | 
 
 
 
 
 | 7 | #define _NLDEF_ | 
 
 
 
 
 | 8 | #include <winapifamily.h> | 
 
 
 
 
 | 9 |  | 
 
 
 
 
 | 10 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= 0x0A00 | 
 
 
 
 
 | 11 |  | 
 
 
 
 
 | 12 | typedef enum { | 
 
 
 
 
 | 13 | NldsInvalid, | 
 
 
 
 
 | 14 | NldsTentative, | 
 
 
 
 
 | 15 | NldsDuplicate, | 
 
 
 
 
 | 16 | NldsDeprecated, | 
 
 
 
 
 | 17 | NldsPreferred, | 
 
 
 
 
 | 18 | IpDadStateInvalid = 0, | 
 
 
 
 
 | 19 | IpDadStateTentative, | 
 
 
 
 
 | 20 | IpDadStateDuplicate, | 
 
 
 
 
 | 21 | IpDadStateDeprecated, | 
 
 
 
 
 | 22 | IpDadStatePreferred, | 
 
 
 
 
 | 23 | } NL_DAD_STATE; | 
 
 
 
 
 | 24 |  | 
 
 
 
 
 | 25 | #define MAKE_ROUTE_PROTOCOL(N, V) MIB_IPPROTO_ ## N = V, PROTO_IP_ ## N = V | 
 
 
 
 
 | 26 |  | 
 
 
 
 
 | 27 | typedef enum { | 
 
 
 
 
 | 28 | RouteProtocolOther = 1, | 
 
 
 
 
 | 29 | RouteProtocolLocal = 2, | 
 
 
 
 
 | 30 | RouteProtocolNetMgmt = 3, | 
 
 
 
 
 | 31 | RouteProtocolIcmp = 4, | 
 
 
 
 
 | 32 | RouteProtocolEgp = 5, | 
 
 
 
 
 | 33 | RouteProtocolGgp = 6, | 
 
 
 
 
 | 34 | RouteProtocolHello = 7, | 
 
 
 
 
 | 35 | RouteProtocolRip = 8, | 
 
 
 
 
 | 36 | RouteProtocolIsIs = 9, | 
 
 
 
 
 | 37 | RouteProtocolEsIs = 10, | 
 
 
 
 
 | 38 | RouteProtocolCisco = 11, | 
 
 
 
 
 | 39 | RouteProtocolBbn = 12, | 
 
 
 
 
 | 40 | RouteProtocolOspf = 13, | 
 
 
 
 
 | 41 | RouteProtocolBgp = 14, | 
 
 
 
 
 | 42 |  | 
 
 
 
 
 | 43 | MAKE_ROUTE_PROTOCOL (OTHER, 1), | 
 
 
 
 
 | 44 | MAKE_ROUTE_PROTOCOL (LOCAL, 2), | 
 
 
 
 
 | 45 | MAKE_ROUTE_PROTOCOL (NETMGMT, 3), | 
 
 
 
 
 | 46 | MAKE_ROUTE_PROTOCOL (ICMP, 4), | 
 
 
 
 
 | 47 | MAKE_ROUTE_PROTOCOL (EGP, 5), | 
 
 
 
 
 | 48 | MAKE_ROUTE_PROTOCOL (GGP, 6), | 
 
 
 
 
 | 49 | MAKE_ROUTE_PROTOCOL (HELLO, 7), | 
 
 
 
 
 | 50 | MAKE_ROUTE_PROTOCOL (RIP, 8), | 
 
 
 
 
 | 51 | MAKE_ROUTE_PROTOCOL (IS_IS, 9), | 
 
 
 
 
 | 52 | MAKE_ROUTE_PROTOCOL (ES_IS, 10), | 
 
 
 
 
 | 53 | MAKE_ROUTE_PROTOCOL (CISCO, 11), | 
 
 
 
 
 | 54 | MAKE_ROUTE_PROTOCOL (BBN, 12), | 
 
 
 
 
 | 55 | MAKE_ROUTE_PROTOCOL (OSPF, 13), | 
 
 
 
 
 | 56 | MAKE_ROUTE_PROTOCOL (BGP, 14), | 
 
 
 
 
 | 57 | MAKE_ROUTE_PROTOCOL (NT_AUTOSTATIC, 10002), | 
 
 
 
 
 | 58 | MAKE_ROUTE_PROTOCOL (NT_STATIC, 10006), | 
 
 
 
 
 | 59 | MAKE_ROUTE_PROTOCOL (NT_STATIC_NON_DOD, 10007) | 
 
 
 
 
 | 60 | } NL_ROUTE_PROTOCOL,*PNL_ROUTE_PROTOCOL; | 
 
 
 
 
 | 61 |  | 
 
 
 
 
 | 62 | typedef enum { | 
 
 
 
 
 | 63 | IpPrefixOriginOther = 0, | 
 
 
 
 
 | 64 | IpPrefixOriginManual, | 
 
 
 
 
 | 65 | IpPrefixOriginWellKnown, | 
 
 
 
 
 | 66 | IpPrefixOriginDhcp, | 
 
 
 
 
 | 67 | IpPrefixOriginRouterAdvertisement, | 
 
 
 
 
 | 68 | IpPrefixOriginUnchanged = 16 | 
 
 
 
 
 | 69 | } NL_PREFIX_ORIGIN; | 
 
 
 
 
 | 70 |  | 
 
 
 
 
 | 71 | typedef enum { | 
 
 
 
 
 | 72 | NlsoOther = 0, | 
 
 
 
 
 | 73 | NlsoManual, | 
 
 
 
 
 | 74 | NlsoWellKnown, | 
 
 
 
 
 | 75 | NlsoDhcp, | 
 
 
 
 
 | 76 | NlsoLinkLayerAddress, | 
 
 
 
 
 | 77 | NlsoRandom, | 
 
 
 
 
 | 78 | IpSuffixOriginOther = 0, | 
 
 
 
 
 | 79 | IpSuffixOriginManual, | 
 
 
 
 
 | 80 | IpSuffixOriginWellKnown, | 
 
 
 
 
 | 81 | IpSuffixOriginDhcp, | 
 
 
 
 
 | 82 | IpSuffixOriginLinkLayerAddress, | 
 
 
 
 
 | 83 | IpSuffixOriginRandom, | 
 
 
 
 
 | 84 | IpSuffixOriginUnchanged = 16 | 
 
 
 
 
 | 85 | } NL_SUFFIX_ORIGIN; | 
 
 
 
 
 | 86 |  | 
 
 
 
 
 | 87 | typedef enum { | 
 
 
 
 
 | 88 | NlatUnspecified, | 
 
 
 
 
 | 89 | NlatUnicast, | 
 
 
 
 
 | 90 | NlatAnycast, | 
 
 
 
 
 | 91 | NlatMulticast, | 
 
 
 
 
 | 92 | NlatBroadcast, | 
 
 
 
 
 | 93 | NlatInvalid | 
 
 
 
 
 | 94 | } NL_ADDRESS_TYPE, *PNL_ADDRESS_TYPE; | 
 
 
 
 
 | 95 |  | 
 
 
 
 
 | 96 | typedef enum _NL_ROUTE_ORIGIN { | 
 
 
 
 
 | 97 | NlroManual, | 
 
 
 
 
 | 98 | NlroWellKnown, | 
 
 
 
 
 | 99 | NlroDHCP, | 
 
 
 
 
 | 100 | NlroRouterAdvertisement, | 
 
 
 
 
 | 101 | Nlro6to4, | 
 
 
 
 
 | 102 | } NL_ROUTE_ORIGIN, *PNL_ROUTE_ORIGIN; | 
 
 
 
 
 | 103 |  | 
 
 
 
 
 | 104 | typedef enum _NL_NEIGHBOR_STATE { | 
 
 
 
 
 | 105 | NlnsUnreachable, | 
 
 
 
 
 | 106 | NlnsIncomplete, | 
 
 
 
 
 | 107 | NlnsProbe, | 
 
 
 
 
 | 108 | NlnsDelay, | 
 
 
 
 
 | 109 | NlnsStale, | 
 
 
 
 
 | 110 | NlnsReachable, | 
 
 
 
 
 | 111 | NlnsPermanent, | 
 
 
 
 
 | 112 | NlnsMaximum, | 
 
 
 
 
 | 113 | } NL_NEIGHBOR_STATE, *PNL_NEIGHBOR_STATE; | 
 
 
 
 
 | 114 |  | 
 
 
 
 
 | 115 | typedef enum _NL_LINK_LOCAL_ADDRESS_BEHAVIOR { | 
 
 
 
 
 | 116 | LinkLocalAlwaysOff = 0, | 
 
 
 
 
 | 117 | LinkLocalDelayed, | 
 
 
 
 
 | 118 | LinkLocalAlwaysOn, | 
 
 
 
 
 | 119 | LinkLocalUnchanged = -1 | 
 
 
 
 
 | 120 | } NL_LINK_LOCAL_ADDRESS_BEHAVIOR; | 
 
 
 
 
 | 121 |  | 
 
 
 
 
 | 122 | typedef enum _NL_ROUTER_DISCOVERY_BEHAVIOR { | 
 
 
 
 
 | 123 | RouterDiscoveryDisabled = 0, | 
 
 
 
 
 | 124 | RouterDiscoveryEnabled, | 
 
 
 
 
 | 125 | RouterDiscoveryDhcp, | 
 
 
 
 
 | 126 | RouterDiscoveryUnchanged = -1 | 
 
 
 
 
 | 127 | } NL_ROUTER_DISCOVERY_BEHAVIOR; | 
 
 
 
 
 | 128 |  | 
 
 
 
 
 | 129 | typedef enum _NL_BANDWIDTH_FLAG { | 
 
 
 
 
 | 130 | NlbwDisabled = 0, | 
 
 
 
 
 | 131 | NlbwEnabled, | 
 
 
 
 
 | 132 | NlbwUnchanged = -1 | 
 
 
 
 
 | 133 | } NL_BANDWIDTH_FLAG, *PNL_BANDWIDTH_FLAG; | 
 
 
 
 
 | 134 |  | 
 
 
 
 
 | 135 | typedef enum _NL_INTERFACE_NETWORK_CATEGORY_STATE { | 
 
 
 
 
 | 136 | NlincCategoryUnknown = 0, | 
 
 
 
 
 | 137 | NlincPublic = 1, | 
 
 
 
 
 | 138 | NlincPrivate = 2, | 
 
 
 
 
 | 139 | NlincDomainAuthenticated = 3, | 
 
 
 
 
 | 140 | NlincCategoryStateMax | 
 
 
 
 
 | 141 | } NL_INTERFACE_NETWORK_CATEGORY_STATE, *PNL_INTERFACE_NETWORK_CATEGORY_STATE; | 
 
 
 
 
 | 142 |  | 
 
 
 
 
 | 143 | typedef struct _NL_INTERFACE_OFFLOAD_ROD { | 
 
 
 
 
 | 144 | BOOLEAN NlChecksumSupported : 1; | 
 
 
 
 
 | 145 | BOOLEAN NlOptionsSupported : 1; | 
 
 
 
 
 | 146 | BOOLEAN TlDatagramChecksumSupported : 1; | 
 
 
 
 
 | 147 | BOOLEAN TlStreamChecksumSupported : 1; | 
 
 
 
 
 | 148 | BOOLEAN TlStreamOptionsSupported : 1; | 
 
 
 
 
 | 149 | BOOLEAN FastPathCompatible : 1; | 
 
 
 
 
 | 150 | BOOLEAN TlLargeSendOffloadSupported : 1; | 
 
 
 
 
 | 151 | BOOLEAN TlGiantSendOffloadSupported : 1; | 
 
 
 
 
 | 152 | } NL_INTERFACE_OFFLOAD_ROD, *PNL_INTERFACE_OFFLOAD_ROD; | 
 
 
 
 
 | 153 |  | 
 
 
 
 
 | 154 | typedef struct _NL_PATH_BANDWIDTH_ROD { | 
 
 
 
 
 | 155 | ULONG64 Bandwidth; | 
 
 
 
 
 | 156 | ULONG64 Instability; | 
 
 
 
 
 | 157 | BOOLEAN BandwidthPeaked; | 
 
 
 
 
 | 158 | } NL_PATH_BANDWIDTH_ROD, *PNL_PATH_BANDWIDTH_ROD; | 
 
 
 
 
 | 159 |  | 
 
 
 
 
 | 160 | typedef enum _NL_NETWORK_CATEGORY { | 
 
 
 
 
 | 161 | NetworkCategoryPublic, | 
 
 
 
 
 | 162 | NetworkCategoryPrivate, | 
 
 
 
 
 | 163 | NetworkCategoryDomainAuthenticated, | 
 
 
 
 
 | 164 | NetworkCategoryUnchanged = -1, | 
 
 
 
 
 | 165 | NetworkCategoryUnknown = -1 | 
 
 
 
 
 | 166 | } NL_NETWORK_CATEGORY,*PNL_NETWORK_CATEGORY; | 
 
 
 
 
 | 167 |  | 
 
 
 
 
 | 168 | typedef struct _NL_BANDWIDTH_INFORMATION { | 
 
 
 
 
 | 169 | ULONG64 Bandwidth; | 
 
 
 
 
 | 170 | ULONG64 Instability; | 
 
 
 
 
 | 171 | BOOLEAN BandwidthPeaked; | 
 
 
 
 
 | 172 | } NL_BANDWIDTH_INFORMATION, *PNL_BANDWIDTH_INFORMATION; | 
 
 
 
 
 | 173 |  | 
 
 
 
 
 | 174 | #define NlpoOther IpPrefixOriginOther | 
 
 
 
 
 | 175 | #define NlpoManual IpPrefixOriginManual | 
 
 
 
 
 | 176 | #define NlpoWellKnown IpPrefixOriginWellKnown | 
 
 
 
 
 | 177 | #define NlpoDhcp IpPrefixOriginDhcp | 
 
 
 
 
 | 178 | #define NlpoRouterAdvertisement IpPrefixOriginRouterAdvertisement | 
 
 
 
 
 | 179 |  | 
 
 
 
 
 | 180 | #define NL_MAX_METRIC_COMPONENT ((((ULONG) 1) << 31) - 1) | 
 
 
 
 
 | 181 |  | 
 
 
 
 
 | 182 | #define NET_IF_CURRENT_SESSION ((ULONG)-1) | 
 
 
 
 
 | 183 |  | 
 
 
 
 
 | 184 | #endif | 
 
 
 
 
 | 185 |  | 
 
 
 
 
 | 186 | #endif |