nldef.h 4.6 KB

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