winapi_ui_automation/shared/
nldef.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use shared::basetsd::ULONG64;
7use shared::minwindef::ULONG;
8use shared::ntdef::BOOLEAN;
9ENUM!{enum NL_PREFIX_ORIGIN {
10    IpPrefixOriginOther = 0,
11    IpPrefixOriginManual,
12    IpPrefixOriginWellKnown,
13    IpPrefixOriginDhcp,
14    IpPrefixOriginRouterAdvertisement,
15    IpPrefixOriginUnchanged = 1 << 4,
16}}
17pub const NlpoOther: NL_PREFIX_ORIGIN = IpPrefixOriginOther;
18pub const NlpoManual: NL_PREFIX_ORIGIN = IpPrefixOriginManual;
19pub const NlpoWellKnown: NL_PREFIX_ORIGIN = IpPrefixOriginWellKnown;
20pub const NlpoDhcp: NL_PREFIX_ORIGIN = IpPrefixOriginDhcp;
21pub const NlpoRouterAdvertisement: NL_PREFIX_ORIGIN = IpPrefixOriginRouterAdvertisement;
22ENUM!{enum NL_SUFFIX_ORIGIN {
23    NlsoOther = 0,
24    NlsoManual,
25    NlsoWellKnown,
26    NlsoDhcp,
27    NlsoLinkLayerAddress,
28    NlsoRandom,
29    IpSuffixOriginOther = 0,
30    IpSuffixOriginManual,
31    IpSuffixOriginWellKnown,
32    IpSuffixOriginDhcp,
33    IpSuffixOriginLinkLayerAddress,
34    IpSuffixOriginRandom,
35    IpSuffixOriginUnchanged = 1 << 4,
36}}
37ENUM!{enum NL_DAD_STATE {
38    NldsInvalid,
39    NldsTentative,
40    NldsDuplicate,
41    NldsDeprecated,
42    NldsPreferred,
43    IpDadStateInvalid = 0,
44    IpDadStateTentative,
45    IpDadStateDuplicate,
46    IpDadStateDeprecated,
47    IpDadStatePreferred,
48}}
49pub const NL_MAX_METRIC_COMPONENT: ULONG = (1u32 << 31) - 1;
50ENUM!{enum NL_ROUTE_PROTOCOL {
51    RouteProtocolOther = 1,
52    RouteProtocolLocal = 2,
53    RouteProtocolNetMgmt = 3,
54    RouteProtocolIcmp = 4,
55    RouteProtocolEgp = 5,
56    RouteProtocolGgp = 6,
57    RouteProtocolHello = 7,
58    RouteProtocolRip = 8,
59    RouteProtocolIsIs = 9,
60    RouteProtocolEsIs = 10,
61    RouteProtocolCisco = 11,
62    RouteProtocolBbn = 12,
63    RouteProtocolOspf = 13,
64    RouteProtocolBgp = 14,
65    RouteProtocolIdpr = 15,
66    RouteProtocolEigrp = 16,
67    RouteProtocolDvmrp = 17,
68    RouteProtocolRpl = 18,
69    RouteProtocolDhcp = 19,
70    MIB_IPPROTO_OTHER = 1,
71    PROTO_IP_OTHER = 1,
72    MIB_IPPROTO_LOCAL = 2,
73    PROTO_IP_LOCAL = 2,
74    MIB_IPPROTO_NETMGMT = 3,
75    PROTO_IP_NETMGMT = 3,
76    MIB_IPPROTO_ICMP = 4,
77    PROTO_IP_ICMP = 4,
78    MIB_IPPROTO_EGP = 5,
79    PROTO_IP_EGP = 5,
80    MIB_IPPROTO_GGP = 6,
81    PROTO_IP_GGP = 6,
82    MIB_IPPROTO_HELLO = 7,
83    PROTO_IP_HELLO = 7,
84    MIB_IPPROTO_RIP = 8,
85    PROTO_IP_RIP = 8,
86    MIB_IPPROTO_IS_IS = 9,
87    PROTO_IP_IS_IS = 9,
88    MIB_IPPROTO_ES_IS = 10,
89    PROTO_IP_ES_IS = 10,
90    MIB_IPPROTO_CISCO = 11,
91    PROTO_IP_CISCO = 11,
92    MIB_IPPROTO_BBN = 12,
93    PROTO_IP_BBN = 12,
94    MIB_IPPROTO_OSPF = 13,
95    PROTO_IP_OSPF = 13,
96    MIB_IPPROTO_BGP = 14,
97    PROTO_IP_BGP = 14,
98    MIB_IPPROTO_IDPR = 15,
99    PROTO_IP_IDPR = 15,
100    MIB_IPPROTO_EIGRP = 16,
101    PROTO_IP_EIGRP = 16,
102    MIB_IPPROTO_DVMRP = 17,
103    PROTO_IP_DVMRP = 17,
104    MIB_IPPROTO_RPL = 18,
105    PROTO_IP_RPL = 18,
106    MIB_IPPROTO_DHCP = 19,
107    PROTO_IP_DHCP = 19,
108    MIB_IPPROTO_NT_AUTOSTATIC = 10002,
109    PROTO_IP_NT_AUTOSTATIC = 10002,
110    MIB_IPPROTO_NT_STATIC = 10006,
111    PROTO_IP_NT_STATIC = 10006,
112    MIB_IPPROTO_NT_STATIC_NON_DOD = 10007,
113    PROTO_IP_NT_STATIC_NON_DOD = 10007,
114}}
115pub type PNL_ROUTE_PROTOCOL = *mut NL_ROUTE_PROTOCOL;
116ENUM!{enum NL_ADDRESS_TYPE {
117    NlatUnspecified = 0,
118    NlatUnicast = 1,
119    NlatAnycast = 2,
120    NlatMulticast = 3,
121    NlatBroadcast = 4,
122    NlatInvalid = 5,
123}}
124pub type PNL_ADDRESS_TYPE = *mut NL_ADDRESS_TYPE;
125ENUM!{enum NL_ROUTE_ORIGIN {
126    NlroManual = 0,
127    NlroWellKnown = 1,
128    NlroDHCP = 2,
129    NlroRouterAdvertisement = 3,
130    Nlro6to4 = 4,
131}}
132pub type PNL_ROUTE_ORIGIN = *mut NL_ROUTE_ORIGIN;
133ENUM!{enum NL_NEIGHBOR_STATE {
134    NlnsUnreachable = 0,
135    NlnsIncomplete = 1,
136    NlnsProbe = 2,
137    NlnsDelay = 3,
138    NlnsStale = 4,
139    NlnsReachable = 5,
140    NlnsPermanent = 6,
141    NlnsMaximum = 7,
142}}
143pub type PNL_NEIGHBOR_STATE = *mut NL_NEIGHBOR_STATE;
144ENUM!{enum NL_LINK_LOCAL_ADDRESS_BEHAVIOR {
145    LinkLocalAlwaysOff = 0,
146    LinkLocalDelayed = 1,
147    LinkLocalAlwaysOn = 2,
148    LinkLocalUnchanged = -1i32 as u32,
149}}
150STRUCT!{struct NL_INTERFACE_OFFLOAD_ROD {
151    bitfield: BOOLEAN,
152}}
153BITFIELD!{NL_INTERFACE_OFFLOAD_ROD bitfield: BOOLEAN [
154    NlChecksumSupported set_NlChecksumSupported[0..1],
155    NlOptionsSupported set_NlOptionsSupported[1..2],
156    TlDatagramChecksumSupported set_TlDatagramChecksumSupported[2..3],
157    TlStreamChecksumSupported set_TlStreamChecksumSupported[3..4],
158    TlStreamOptionsSupported set_TlStreamOptionsSupported[4..5],
159    FastPathCompatible set_FastPathCompatible[5..6],
160    TlLargeSendOffloadSupported set_TlLargeSendOffloadSupported[6..7],
161    TlGiantSendOffloadSupported set_TlGiantSendOffloadSupported[7..8],
162]}
163pub type PNL_INTERFACE_OFFLOAD_ROD = *mut NL_INTERFACE_OFFLOAD_ROD;
164ENUM!{enum NL_ROUTER_DISCOVERY_BEHAVIOR {
165    RouterDiscoveryDisabled = 0,
166    RouterDiscoveryEnabled = 1,
167    RouterDiscoveryDhcp = 2,
168    RouterDiscoveryUnchanged = -1i32 as u32,
169}}
170ENUM!{enum NL_BANDWIDTH_FLAG {
171    NlbwDisabled = 0,
172    NlbwEnabled = 1,
173    NlbwUnchanged = -1i32 as u32,
174}}
175pub type PNL_BANDWIDTH_FLAG = *mut NL_BANDWIDTH_FLAG;
176STRUCT!{struct NL_PATH_BANDWIDTH_ROD {
177    Bandwidth: ULONG64,
178    Instability: ULONG64,
179    BandwidthPeaked: BOOLEAN,
180}}
181pub type PNL_PATH_BANDWIDTH_ROD = *mut NL_PATH_BANDWIDTH_ROD;
182ENUM!{enum NL_NETWORK_CATEGORY {
183    NetworkCategoryPublic = 0,
184    NetworkCategoryPrivate = 1,
185    NetworkCategoryDomainAuthenticated = 2,
186    NetworkCategoryUnchanged = -1i32 as u32,
187    NetworkCategoryUnknown = -1i32 as u32,
188}}
189pub type PNL_NETWORK_CATEGORY = *mut NL_NETWORK_CATEGORY;
190ENUM!{enum NL_INTERFACE_NETWORK_CATEGORY_STATE {
191    NlincCategoryUnknown = 0,
192    NlincPublic = 1,
193    NlincPrivate = 2,
194    NlincDomainAuthenticated = 3,
195    NlincCategoryStateMax = 4,
196}}
197pub type PNL_INTERFACE_NETWORK_CATEGORY_STATE = *mut NL_INTERFACE_NETWORK_CATEGORY_STATE;
198pub const NET_IF_CURRENT_SESSION: ULONG = -1i32 as u32;
199STRUCT!{struct NL_BANDWIDTH_INFORMATION {
200    Bandwidth: ULONG64,
201    Instability: ULONG64,
202    BandwidthPeaked: BOOLEAN,
203}}
204pub type PNL_BANDWIDTH_INFORMATION = *mut NL_BANDWIDTH_INFORMATION;