|  | /** | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER within this package. | 
|  | */ | 
|  |  | 
|  | #ifndef _NLDEF_ | 
|  | #define _NLDEF_ | 
|  | #include <winapifamily.h> | 
|  |  | 
|  | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= 0x0A00 | 
|  |  | 
|  | typedef enum { | 
|  | NldsInvalid, | 
|  | NldsTentative, | 
|  | NldsDuplicate, | 
|  | NldsDeprecated, | 
|  | NldsPreferred, | 
|  | IpDadStateInvalid = 0, | 
|  | IpDadStateTentative, | 
|  | IpDadStateDuplicate, | 
|  | IpDadStateDeprecated, | 
|  | IpDadStatePreferred | 
|  | } NL_DAD_STATE; | 
|  |  | 
|  | #define MAKE_ROUTE_PROTOCOL(N, V) MIB_IPPROTO_ ## N = V, PROTO_IP_ ## N = V | 
|  |  | 
|  | typedef enum { | 
|  | RouteProtocolOther = 1, | 
|  | RouteProtocolLocal = 2, | 
|  | RouteProtocolNetMgmt = 3, | 
|  | RouteProtocolIcmp = 4, | 
|  | RouteProtocolEgp = 5, | 
|  | RouteProtocolGgp = 6, | 
|  | RouteProtocolHello = 7, | 
|  | RouteProtocolRip = 8, | 
|  | RouteProtocolIsIs = 9, | 
|  | RouteProtocolEsIs = 10, | 
|  | RouteProtocolCisco = 11, | 
|  | RouteProtocolBbn = 12, | 
|  | RouteProtocolOspf = 13, | 
|  | RouteProtocolBgp = 14, | 
|  |  | 
|  | MAKE_ROUTE_PROTOCOL (OTHER, 1), | 
|  | MAKE_ROUTE_PROTOCOL (LOCAL, 2), | 
|  | MAKE_ROUTE_PROTOCOL (NETMGMT, 3), | 
|  | MAKE_ROUTE_PROTOCOL (ICMP, 4), | 
|  | MAKE_ROUTE_PROTOCOL (EGP, 5), | 
|  | MAKE_ROUTE_PROTOCOL (GGP, 6), | 
|  | MAKE_ROUTE_PROTOCOL (HELLO, 7), | 
|  | MAKE_ROUTE_PROTOCOL (RIP, 8), | 
|  | MAKE_ROUTE_PROTOCOL (IS_IS, 9), | 
|  | MAKE_ROUTE_PROTOCOL (ES_IS, 10), | 
|  | MAKE_ROUTE_PROTOCOL (CISCO, 11), | 
|  | MAKE_ROUTE_PROTOCOL (BBN, 12), | 
|  | MAKE_ROUTE_PROTOCOL (OSPF, 13), | 
|  | MAKE_ROUTE_PROTOCOL (BGP, 14), | 
|  | MAKE_ROUTE_PROTOCOL (NT_AUTOSTATIC, 10002), | 
|  | MAKE_ROUTE_PROTOCOL (NT_STATIC, 10006), | 
|  | MAKE_ROUTE_PROTOCOL (NT_STATIC_NON_DOD, 10007) | 
|  | } NL_ROUTE_PROTOCOL,*PNL_ROUTE_PROTOCOL; | 
|  |  | 
|  | typedef enum { | 
|  | IpPrefixOriginOther = 0, | 
|  | IpPrefixOriginManual, | 
|  | IpPrefixOriginWellKnown, | 
|  | IpPrefixOriginDhcp, | 
|  | IpPrefixOriginRouterAdvertisement, | 
|  | IpPrefixOriginUnchanged = 16 | 
|  | } NL_PREFIX_ORIGIN; | 
|  |  | 
|  | typedef enum { | 
|  | NlsoOther = 0, | 
|  | NlsoManual, | 
|  | NlsoWellKnown, | 
|  | NlsoDhcp, | 
|  | NlsoLinkLayerAddress, | 
|  | NlsoRandom, | 
|  | IpSuffixOriginOther = 0, | 
|  | IpSuffixOriginManual, | 
|  | IpSuffixOriginWellKnown, | 
|  | IpSuffixOriginDhcp, | 
|  | IpSuffixOriginLinkLayerAddress, | 
|  | IpSuffixOriginRandom, | 
|  | IpSuffixOriginUnchanged = 16 | 
|  | } NL_SUFFIX_ORIGIN; | 
|  |  | 
|  | typedef enum { | 
|  | NlatUnspecified, | 
|  | NlatUnicast, | 
|  | NlatAnycast, | 
|  | NlatMulticast, | 
|  | NlatBroadcast, | 
|  | NlatInvalid | 
|  | } NL_ADDRESS_TYPE, *PNL_ADDRESS_TYPE; | 
|  |  | 
|  | typedef enum _NL_ROUTE_ORIGIN { | 
|  | NlroManual, | 
|  | NlroWellKnown, | 
|  | NlroDHCP, | 
|  | NlroRouterAdvertisement, | 
|  | Nlro6to4 | 
|  | } NL_ROUTE_ORIGIN, *PNL_ROUTE_ORIGIN; | 
|  |  | 
|  | typedef enum _NL_NEIGHBOR_STATE { | 
|  | NlnsUnreachable, | 
|  | NlnsIncomplete, | 
|  | NlnsProbe, | 
|  | NlnsDelay, | 
|  | NlnsStale, | 
|  | NlnsReachable, | 
|  | NlnsPermanent, | 
|  | NlnsMaximum | 
|  | } NL_NEIGHBOR_STATE, *PNL_NEIGHBOR_STATE; | 
|  |  | 
|  | typedef enum _NL_LINK_LOCAL_ADDRESS_BEHAVIOR { | 
|  | LinkLocalAlwaysOff = 0, | 
|  | LinkLocalDelayed, | 
|  | LinkLocalAlwaysOn, | 
|  | LinkLocalUnchanged = -1 | 
|  | } NL_LINK_LOCAL_ADDRESS_BEHAVIOR; | 
|  |  | 
|  | typedef enum _NL_ROUTER_DISCOVERY_BEHAVIOR { | 
|  | RouterDiscoveryDisabled = 0, | 
|  | RouterDiscoveryEnabled, | 
|  | RouterDiscoveryDhcp, | 
|  | RouterDiscoveryUnchanged = -1 | 
|  | } NL_ROUTER_DISCOVERY_BEHAVIOR; | 
|  |  | 
|  | typedef enum _NL_BANDWIDTH_FLAG { | 
|  | NlbwDisabled = 0, | 
|  | NlbwEnabled, | 
|  | NlbwUnchanged = -1 | 
|  | } NL_BANDWIDTH_FLAG, *PNL_BANDWIDTH_FLAG; | 
|  |  | 
|  | typedef enum _NL_INTERFACE_NETWORK_CATEGORY_STATE { | 
|  | NlincCategoryUnknown = 0, | 
|  | NlincPublic = 1, | 
|  | NlincPrivate = 2, | 
|  | NlincDomainAuthenticated = 3, | 
|  | NlincCategoryStateMax | 
|  | } NL_INTERFACE_NETWORK_CATEGORY_STATE, *PNL_INTERFACE_NETWORK_CATEGORY_STATE; | 
|  |  | 
|  | typedef struct _NL_INTERFACE_OFFLOAD_ROD { | 
|  | BOOLEAN NlChecksumSupported : 1; | 
|  | BOOLEAN NlOptionsSupported : 1; | 
|  | BOOLEAN TlDatagramChecksumSupported : 1; | 
|  | BOOLEAN TlStreamChecksumSupported : 1; | 
|  | BOOLEAN TlStreamOptionsSupported : 1; | 
|  | BOOLEAN FastPathCompatible : 1; | 
|  | BOOLEAN TlLargeSendOffloadSupported : 1; | 
|  | BOOLEAN TlGiantSendOffloadSupported : 1; | 
|  | } NL_INTERFACE_OFFLOAD_ROD, *PNL_INTERFACE_OFFLOAD_ROD; | 
|  |  | 
|  | typedef struct _NL_PATH_BANDWIDTH_ROD { | 
|  | ULONG64 Bandwidth; | 
|  | ULONG64 Instability; | 
|  | BOOLEAN BandwidthPeaked; | 
|  | } NL_PATH_BANDWIDTH_ROD, *PNL_PATH_BANDWIDTH_ROD; | 
|  |  | 
|  | typedef enum _NL_NETWORK_CATEGORY { | 
|  | NetworkCategoryPublic, | 
|  | NetworkCategoryPrivate, | 
|  | NetworkCategoryDomainAuthenticated, | 
|  | NetworkCategoryUnchanged = -1, | 
|  | NetworkCategoryUnknown = -1 | 
|  | } NL_NETWORK_CATEGORY,*PNL_NETWORK_CATEGORY; | 
|  |  | 
|  | typedef struct _NL_BANDWIDTH_INFORMATION { | 
|  | ULONG64 Bandwidth; | 
|  | ULONG64 Instability; | 
|  | BOOLEAN BandwidthPeaked; | 
|  | } NL_BANDWIDTH_INFORMATION, *PNL_BANDWIDTH_INFORMATION; | 
|  |  | 
|  | #define NlpoOther IpPrefixOriginOther | 
|  | #define NlpoManual IpPrefixOriginManual | 
|  | #define NlpoWellKnown IpPrefixOriginWellKnown | 
|  | #define NlpoDhcp IpPrefixOriginDhcp | 
|  | #define NlpoRouterAdvertisement IpPrefixOriginRouterAdvertisement | 
|  |  | 
|  | #define NL_MAX_METRIC_COMPONENT ((((ULONG) 1) << 31) - 1) | 
|  |  | 
|  | #define NET_IF_CURRENT_SESSION ((ULONG)-1) | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #endif |