ReactOS 0.4.15-dev-8219-ge8b88cf
netiodef.h
Go to the documentation of this file.
1#ifndef _NETIODEF_
2#define _NETIODEF_
3
4#pragma once
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#include "ws2def.h"
11#include "ws2ipdef.h"
12#include "mswsockdef.h"
13#include "mstcpip.h"
14#include "nldef.h"
15
16#include "ifdef.h"
17
18#ifndef ASSERT
19#define ASSERT(x) ((void)0)
20#define NETIODEF_DEFINED_ASSERT
21#endif
22
23#ifndef NETIO_INLINE
24#if DBG
25#define NETIO_INLINE __inline
26#else
27#define NETIO_INLINE __forceinline
28#endif
29#endif
30
31#define IS_POWER_OF_TWO(x) (((x) != 0) && (((x) & ((x) - 1)) == 0))
32#define IS_VALID_IPV4_MASK(x) ((x.S_un.S_addr == (ULONG)-1) || IS_POWER_OF_TWO(~RtlUlongByteSwap(x.S_un.S_addr)+1))
33
34#ifndef BYTE_ORDER
35
36#define _LITTLE_ENDIAN 1234
37#define _BIG_ENDIAN 4321
38#define _PDP_ENDIAN 3412
39
40#if defined(i286) || defined(i386) || defined(_AMD64_) || defined(_IA64_)
41#define BYTE_ORDER _LITTLE_ENDIAN
42#endif
43
44#endif /* BYTE_ORDER */
45
50
51#define MAKE_DD_DEVICE_NAME(x) (L"\\Device\\" x)
52#define MAKE_WIN_DEVICE_NAME(x) (L"\\\\.\\" x)
53
54#define DL_ADDRESS_LENGTH_MAXIMUM IF_MAX_PHYS_ADDRESS_LENGTH
55#define DL_HEADER_LENGTH_MAXIMUM 64
56#define DL_ETHERNET_HEADER_LENGTH_MAXIMUM (sizeof(ETHERNET_HEADER) + sizeof(SNAP_HEADER))
57#define DL_TUNNEL_HEADER_LENGTH_MAXIMUM max(sizeof(IPV4_HEADER), sizeof(IPV6_HEADER))
58
59#define EUI48_BROADCAST_INIT {0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
60
61#define SNAP_DSAP 0xaa
62#define SNAP_SSAP 0xaa
63#define SNAP_CONTROL 0x03
64#define SNAP_OUI 0x00
65
66#define SNAP_TYPE_ARP ETHERNET_TYPE_ARP
67#define SNAP_TYPE_IPV4 ETHERNET_TYPE_IPV4
68#define SNAP_TYPE_IPV6 ETHERNET_TYPE_IPV6
69
70#define ETH_LENGTH_OF_HEADER 14
71#define ETH_LENGTH_OF_VLAN_HEADER 4
72#define ETH_LENGTH_OF_SNAP_HEADER 8
73
74#define ETHERNET_TYPE_MINIMUM 0x0600
75#define ETHERNET_TYPE_IPV4 0x0800
76#define ETHERNET_TYPE_ARP 0x0806
77#define ETHERNET_TYPE_IPV6 0x86dd
78#define ETHERNET_TYPE_802_1Q 0x8100
79
80#define TOKENRING_ACCESSCONTROL 0x10
81#define TOKENRING_FRAMECONTROL 0x40
82
83#define SOURCEROUTE_RD_MAXIMUM 8
84#define SOURCEROUTE_SIZE_MAXIMUM (sizeof(SOURCEROUTE_HEADER) + 2 * SOURCEROUTE_RD_MAXIMUM)
85
86#define SOURCEROUTE_UNSPECIFIED_INIT {{sizeof(SOURCEROUTE_HEADER), TokenRingSpanningTreeExplorer}, {0}}
87
88#define TOKENRING_MTU_DEFAULT 1500
89#define TOKENRING_SOURCEROUTE_INDICATOR 0x80
90
91#define FDDI_FRAMECODE 0x57
92#define FDDI_MTU 4352
93
94#define ARCNET_BROADCAST_MASK 0xff
95#define ARCNET_BROADCAST_VALUE 0x00
96#define ARCNET_PROTOCOL_ARP 0xd5
97#define ARCNET_PROTOCOL_IPV4 0xd4
98#define ARCNET_PROTOCOL_IPV6 0xc4
99
100#define ip4_hdr _IPV4_HEADER
101#define ip4_ver_hlen VersionAndHeaderLength
102#define ip4_ver Version
103#define ip4_hlen HeaderLength
104#define ip4_tos TypeOfService
105#define ip4_len TotalLength
106#define ip4_id Identification
107#define ip4_flags_offset FlagsAndOffset
108#define ip4_flags Flags
109#define ip4_offset FragmentOffset
110#define ip4_ttl TimeToLive
111#define ip4_protocol Protocol
112#define ip4_xsum HeaderChecksum
113#define ip4_src SourceAddress
114#define ip4_dest DestinationAddress
115
116#define IP_VER_MASK 0xF0
117#define IPV4_VERSION 4
118#define IPV4_DEFAULT_VERHLEN ((IPV4_VERSION << 4) | (sizeof(IPV4_HEADER) / sizeof(UINT32)))
119#define IPV4_TOS_MASK 0xFC
120
121#define MAX_IPV4_PACKET 65535
122#define MAX_IPV4_PAYLOAD (MAX_IPV4_PACKET - sizeof(IPV4_HEADER))
123
124#define MAX_IPV4_HLEN 60
125
126#define IPV4_MINIMUM_MTU 576
127#define IPV4_MINIMUM_ULMTU (IPV4_MINIMUM_MTU - sizeof(IPV4_HEADER))
128
129#define MAX_IP_OPTIONS_LENGTH ((0xF * sizeof(UINT32)) - sizeof(IPV4_HEADER))
130#define SIZEOF_IP_OPT_ROUTING_HEADER 3
131#define SIZEOF_IP_OPT_TIMESTAMP_HEADER 4
132#define SIZEOF_IP_OPT_SECURITY 11
133#define SIZEOF_IP_OPT_STREAMIDENTIFIER 4
134#define SIZEOF_IP_OPT_ROUTERALERT 4
135#define IP4_OFF_MASK 0xff1f
136
137#define icmp4_hdr _ICMPV4_MESSAGE
138#define icmp4_type Header.Type
139#define icmp4_code Header.Code
140#define icmp4_cksum Header.Checksum
141#define icmp4_un_data32 Data32
142#define icmp4_un_data16 Data16
143#define icmp4_un_data8 Data8
144#define icmp4_dataun Data
145#define icmp4_data32 icmp4_dataun.icmp4_un_data32
146#define icmp4_data16 icmp4_dataun.icmp4_un_data16
147#define icmp4_data8 icmp4_dataun.icmp4_un_data8
148#define icmp4_pptr icmp4_data32[0]
149#define icmp4_mtu icmp4_data32[0]
150#define icmp4_id icmp4_data16[0]
151#define icmp4_seq icmp4_data16[1]
152#define icmp4_maxdelay icmp4_data16[0]
153
154#define RsType RsHeader.icmp4_type
155#define RsCode RsHeader.icmp4_code
156#define RsCksum RsHeader.icmp4_cksum
157#define RsReserved RsHeader.icmp4_data32[0]
158
159#define RaType RaHeader.icmp4_type
160#define RaCode RaHeader.icmp4_code
161#define RaCksum RaHeader.icmp4_cksum
162#define RaNumAddr RaHeader.icmp4_data8[0]
163#define RaAddrEntrySize RaHeader.icmp4_data8[1]
164#define RaAddrLifetime RaHeader.icmp4_data16[1]
165
166#define ICMPV4_INVALID_PREFERENCE_LEVEL 0x80000000
167
168#define icmp4_ts_type Header.icmp4_type
169#define icmp4_ts_code Header.icmp4_code
170#define icmp4_ts_cksum Header.icmp4_cksum
171#define icmp4_ts_id Header.icmp4_id
172#define icmp4_ts_seq Header.icmp4_seq
173#define icmp4_ts_originate OriginateTimestamp
174#define icmp4_ts_receive ReceiveTimestamp
175#define icmp4_ts_transmit TransmitTimestamp
176
177#define IGMP_QUERY_TYPE 0x11
178#define IGMP_VERSION1_REPORT_TYPE 0x12
179#define IGMP_VERSION2_REPORT_TYPE 0x16
180#define IGMP_LEAVE_GROUP_TYPE 0x17
181#define IGMP_VERSION3_REPORT_TYPE 0x22
182
183#define ip6_hdr _IPV6_HEADER
184#define ip6_flow VersionClassFlow
185#define ip6_plen PayloadLength
186#define ip6_nxt NextHeader
187#define ip6_hops HopLimit
188#define ip6_hlim HopLimit
189#define ip6_src SourceAddress
190#define ip6_dst DestinationAddress
191
192#define IP_VER_MASK 0xF0
193#define IPV6_VERSION 0x60
194
195#define IPV6_TRAFFIC_CLASS_MASK 0x0000C00F
196#define IPV6_ECN_MASK 0x00003000
197#define IPV6_FLOW_LABEL_MASK 0xFFFF0F00
198#define MAX_IPV6_PAYLOAD 65535
199#define MAX_IPV6_PACKET (MAX_IPV6_PAYLOAD + sizeof(IPV6_HEADER))
200
201#define IPV6_ECN_SHIFT 12
202
203#define IPV6_MINIMUM_MTU 1280
204#define IPV6_MINIMUM_ULMTU (IPV6_MINIMUM_MTU - sizeof(IPV6_HEADER))
205
206#define IPV6_TRAFFIC_CLASS(VersionClassFlow) \
207 ((UCHAR)((((VersionClassFlow) & IPV6_TRAFFIC_CLASS_MASK) >> 12) + \
208 (((VersionClassFlow) & IPV6_TRAFFIC_CLASS_MASK) << 4)))
209
210#define ip6_frag _IPV6_FRAGMENT_HEADER
211#define ip6f_nxt NextHeader
212#define ip6f_reserved Reserved
213#define ip6f_offlg OffsetAndFlags
214#define ip6f_ident Id
215
216#define IP6F_OFF_MASK 0xf8ff
217#define IP6F_RESERVED_MASK 0x0600
218#define IP6F_MORE_FRAG 0x0100
219
220#define EXT_LEN_UNIT 8
221
222#define IPV6_EXTENSION_HEADER_LENGTH(Blocks) ((Blocks + 1) * EXT_LEN_UNIT)
223#define MAX_IPV6_EXTENSION_HEADER_LENGTH IPV6_EXTENSION_HEADER_LENGTH(0xFF)
224#define IPV6_EXTENSION_HEADER_BLOCKS(Length) ((Length / EXT_LEN_UNIT) - 1)
225#define IP_AUTHENTICATION_HEADER_LENGTH(Blocks) ((Blocks + 2) * 4)
226#define IP_AUTHENTICATION_HEADER_BLOCKS(Length) (((Length + sizeof(AUTHENTICATION_HEADER)) / 4) - 2)
227
228#define IPV6_ROUTER_ALERT_LENGTH IPV6_EXTENSION_HEADER_LENGTH(0)
229
230#define ip6_hbh _IPV6_EXTENSION_HEADER
231#define ip6h_nxt NextHeader
232#define ip6h_len Length
233#define ip6_dest _IPV6_EXTENSION_HEADER
234#define ip6d_nxt NextHeader
235#define ip6d_len Length
236
237#define IP6OPT_TYPE(Type) ((Type) & 0xc0)
238#define IP6OPT_TYPE_SKIP 0x00
239#define IP6OPT_TYPE_DISCARD 0x40
240#define IP6OPT_TYPE_FORCEICMP 0x80
241#define IP6OPT_TYPE_ICMP 0xc0
242
243#define IP6OPT_MUTABLE 0x20
244#define IP6OPT_ISMUTABLE(Type) (((Type) & IP6OPT_MUTABLE) != 0)
245
246#define ip6_opt_jumbo _IPV6_OPTION_JUMBOGRAM
247#define ip6oj_type Header.Type
248#define ip6oj_len Header.DataLength
249#define ip6oj_jumbo_len JumbogramLength
250
251#define ip6_opt_router _IPV6_OPTION_ROUTER_ALERT
252#define ip6or_type Header.Type
253#define ip6or_len Header.DataLength
254#define ip6or_value Value
255
256#define SIZEOF_IPV6_ROUTERALERT IPV6_EXTENSION_HEADER_LENGTH(0)
257
258#define ip6_rthdr _IPV6_ROUTING_HEADER
259#define ip6r_nxt NextHeader
260#define ip6r_len Length
261#define ip6r_type RoutingType
262#define ip6r_segleft SegmentsLeft
263
264#define icmp6_hdr _ICMPV6_MESSAGE
265#define icmp6_type Header.Type
266#define icmp6_code Header.Code
267#define icmp6_cksum Header.Checksum
268#define icmp6_un_data32 Data32
269#define icmp6_un_data16 Data16
270#define icmp6_un_data8 Data8
271#define icmp6_dataun Data
272
273#define icmp6_data32 icmp6_dataun.icmp6_un_data32
274#define icmp6_data16 icmp6_dataun.icmp6_un_data16
275#define icmp6_data8 icmp6_dataun.icmp6_un_data8
276#define icmp6_pptr icmp6_data32[0]
277#define icmp6_mtu icmp6_data32[0]
278#define icmp6_id icmp6_data16[0]
279#define icmp6_seq icmp6_data16[1]
280#define icmp6_maxdelay icmp6_data16[0]
281
282#define ICMP6_INFOMSG_MASK 0x80
283
284#define ICMP6_DST_UNREACH_NOROUTE 0
285#define ICMP6_DST_UNREACH_ADMIN 1
286#define ICMP6_DST_UNREACH_BEYONDSCOPE 2
287#define ICMP6_DST_UNREACH_ADDR 3
288#define ICMP6_DST_UNREACH_NOPORT 4
289
290#define ICMP6_TIME_EXCEED_TRANSIT 0
291#define ICMP6_TIME_EXCEED_REASSEMBLY 1
292
293#define ICMP6_PARAMPROB_HEADER 0
294#define ICMP6_PARAMPROB_NEXTHEADER 1
295#define ICMP6_PARAMPROB_OPTION 2
296
297#define ICMPV6_ECHO_REQUEST_FLAG_REVERSE 0x1
298
299#define nd_rs_type nd_rs_hdr.icmp6_type
300#define nd_rs_code nd_rs_hdr.icmp6_code
301#define nd_rs_cksum nd_rs_hdr.icmp6_cksum
302#define nd_rs_reserved nd_rs_hdr.icmp6_data32[0]
303
304#define nd_ra_type nd_ra_hdr.icmp6_type
305#define nd_ra_code nd_ra_hdr.icmp6_code
306#define nd_ra_cksum nd_ra_hdr.icmp6_cksum
307#define nd_ra_curhoplimit nd_ra_hdr.icmp6_data8[0]
308#define nd_ra_flags_reserved nd_ra_hdr.icmp6_data8[1]
309#define ND_RA_FLAG_MANAGED 0x80
310#define ND_RA_FLAG_OTHER 0x40
311#define ND_RA_FLAG_HOME_AGENT 0x20
312#define ND_RA_FLAG_PREFERENCE 0x18
313#define nd_ra_router_lifetime nd_ra_hdr.icmp6_data16[1]
314
315#define nd_ns_type nd_ns_hdr.icmp6_type
316#define nd_ns_code nd_ns_hdr.icmp6_code
317#define nd_ns_cksum nd_ns_hdr.icmp6_cksum
318#define nd_ns_reserved nd_ns_hdr.icmp6_data32[0]
319
320#define nd_na_type nd_na_hdr.icmp6_type
321#define nd_na_code nd_na_hdr.icmp6_code
322#define nd_na_cksum nd_na_hdr.icmp6_cksum
323#define nd_na_flags_reserved nd_na_hdr.icmp6_data32[0]
324
325#if (BYTE_ORDER == _BIG_ENDIAN)
326#define ND_NA_FLAG_ROUTER 0x80000000
327#define ND_NA_FLAG_SOLICITED 0x40000000
328#define ND_NA_FLAG_OVERRIDE 0x20000000
329#else
330#define ND_NA_FLAG_ROUTER 0x00000080
331#define ND_NA_FLAG_SOLICITED 0x00000040
332#define ND_NA_FLAG_OVERRIDE 0x00000020
333#endif /* (BYTE_ORDER == _BIG_ENDIAN) */
334
335#define nd_rd_type nd_rd_hdr.icmp6_type
336#define nd_rd_code nd_rd_hdr.icmp6_code
337#define nd_rd_cksum nd_rd_hdr.icmp6_cksum
338#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]
339
340#define ND_OPT_PI_FLAG_ONLINK 0x80
341#define ND_OPT_PI_FLAG_AUTO 0x40
342#define ND_OPT_PI_FLAG_ROUTER_ADDR 0x20
343#define ND_OPT_PI_FLAG_SITE_PREFIX 0x10
344#define ND_OPT_PI_FLAG_ROUTE 0x01
345
346#define ND_OPT_RI_FLAG_PREFERENCE 0x18
347
348#define TH_MAX_LEN (0x0F << 2)
349#define TH_FIN 0x01
350#define TH_SYN 0x02
351#define TH_RST 0x04
352#define TH_PSH 0x08
353#define TH_ACK 0x10
354#define TH_URG 0x20
355#define TH_ECE 0x40
356#define TH_CWR 0x80
357#define TH_ALL (TH_FIN | TH_SYN | TH_RST | TH_PSH | TH_ACK | TH_URG | TH_ECE | TH_CWR)
358#define TH_SYN_ALL (TH_FIN | TH_SYN | TH_RST | TH_ACK)
359
360#define TH_OPT_EOL 0x00
361#define TH_OPT_NOP 0x01
362#define TH_OPT_MSS 0x02
363#define TH_OPT_WS 0x03
364#define TH_OPT_SACK_PERMITTED 0x04
365#define TH_OPT_SACK 0x05
366#define TH_OPT_TS 0x08
367
368#define DL_SIZEOF_TUNNEL_ADDRESS(AddressBytes) (FIELD_OFFSET(DL_TUNNEL_ADDRESS, IpAddress) + (AddressBytes))
369#define DL_SIZEOF_IPV4_TUNNEL_ADDRESS DL_SIZEOF_TUNNEL_ADDRESS(sizeof(IN_ADDR))
370#define DL_SIZEOF_IPV6_TUNNEL_ADDRESS DL_SIZEOF_TUNNEL_ADDRESS(sizeof(IN6_ADDR))
371
372#define FL_PACKET_TYPE_FLAGS (NDIS_PACKET_TYPE_ALL_MULTICAST | NDIS_PACKET_TYPE_PROMISCUOUS)
373
374#define mld_type IcmpHeader.Type
375#define mld_checksum IcmpHeader.Checksum
376
377#ifndef _DEFINE_DL_ADDRESS_TYPE_
378#define _DEFINE_DL_ADDRESS_TYPE_
379typedef enum {
384#endif
385
386union _DL_OUI {
388 struct {
391 };
392};
393typedef union _DL_OUI DL_OUI, *PDL_OUI;
394
395union _DL_EI48 {
397};
398typedef union _DL_EI48 DL_EI48, *PDL_EI48;
399
402 struct {
405 };
406};
407
409
410extern CONST DL_EUI48 eui48_broadcast;
411
412union _DL_EI64 {
414};
415typedef union _DL_EI64 DL_EI64, *PDL_EI64;
416
420 struct {
422 union {
424 struct {
428 };
429 };
430 };
431};
433
434typedef struct _SNAP_HEADER {
441
442typedef struct _ETHERNET_HEADER {
443 DL_EUI48 Destination;
444 DL_EUI48 Source;
445 union {
448 };
450
453
454typedef struct _VLAN_TAG {
455 union {
457 struct {
461 };
462 };
465
467
471 _In_reads_(sizeof(DL_EUI48)) CONST UCHAR *Address)
472{
473 if (((PDL_EUI48) Address)->Oui.Group)
474 {
475 if (RtlEqualMemory(Address, &eui48_broadcast, sizeof(DL_EUI48)))
476 {
477 return DlBroadcast;
478 }
479 return DlMulticast;
480 }
481 else
482 {
483 return DlUnicast;
484 }
485}
486
487typedef struct _TOKENRING_HEADER {
490 DL_EUI48 Destination;
491 DL_EUI48 Source;
493
494typedef struct _SOURCEROUTE_HEADER {
495 union {
496 struct {
499 };
501 };
502 union {
503 struct {
507 };
509 };
512
513typedef enum {
518
520
522
523__inline
526 _In_ CONST UNALIGNED DL_EUI48 *Source)
527{
528 return ((Source->Byte[0] & TOKENRING_SOURCEROUTE_INDICATOR) != 0);
529}
530
531__inline
532VOID
534 _Out_ UNALIGNED DL_EUI48 *Source)
535{
537}
538
539__inline
540VOID
542 _Out_ UNALIGNED DL_EUI48 *Source)
543{
544 Source->Byte[0] &= ~TOKENRING_SOURCEROUTE_INDICATOR;
545}
546
551{
553 {
554 if (RtlEqualMemory(Address, &eui48_broadcast, sizeof(DL_EUI48)))
555 {
556 return DlBroadcast;
557 }
558 return DlMulticast;
559 }
560 else
561 {
562 return DlUnicast;
563 }
564}
565
566typedef struct _FDDI_HEADER {
568 DL_EUI48 Destination;
569 DL_EUI48 Source;
571
572typedef struct _ARCNET_HEADER {
577
578typedef struct _ICMP_HEADER {
583
584typedef struct _ICMP_MESSAGE {
586 union {
592
595
596typedef struct _IPV4_HEADER {
597 union {
599 struct {
602 };
603 };
604 union {
606 struct {
609 };
610 };
613 union {
615 struct {
621 };
622 };
629
630C_ASSERT(sizeof(IPV4_HEADER) == 20);
631
632__inline
633UCHAR
636{
637 return (Header->HeaderLength << 2);
638}
639
640#if defined(_NTDDK_) || defined(_NTRTL_)
641__inline
642UINT16
643Ip4FragmentOffset(
645{
646 return RtlUshortByteSwap(Header->FlagsAndOffset & IP4_OFF_MASK) << 3;
647}
648#endif
649
650typedef struct _IPV4_OPTION_HEADER {
651 union {
653 struct {
657 };
658 };
661
663
664#if !defined(IP_EXPORT_INCLUDED)
665typedef enum {
670 IP_OPT_TS = 0x44,
671 IP_OPT_RR = 0x07,
677#else
678typedef ULONG IPV4_OPTION_TYPE;
679#endif
680
682#ifdef __cplusplus
683 IPV4_OPTION_HEADER OptionHeader;
684#else
686#endif
688 union {
690 struct {
693 };
694 };
696
697typedef enum {
702
703typedef struct _IPV4_ROUTING_HEADER {
704#ifdef __cplusplus
705 IPV4_OPTION_HEADER OptionHeader;
706#else
708#endif
711
714
715typedef enum {
731
732typedef enum {
736
740
744
749
756
761
762typedef struct _ARP_HEADER {
770
771typedef enum {
773 ARP_RESPONSE = 2
775
776typedef enum {
778 ARP_HW_802 = 6
780
781typedef struct _IGMP_HEADER {
782 union {
783 struct {
786 };
788 };
789 union {
793 };
797
798typedef enum {
802
803typedef struct _IGMPV3_QUERY_HEADER {
805 union {
807 struct {
811 };
812 };
818 union {
820 struct {
824 };
825 };
828
835
843
844typedef struct _IPV6_HEADER {
852
853typedef struct _IPV6_FRAGMENT_HEADER {
856 union {
857 struct {
862 };
864 };
867
869
870#if defined(_NTDDK_) || defined(_NTRTL_)
871__inline
872UINT16
873Ip6FragmentOffset(
875{
876 return RtlUshortByteSwap(Header->OffsetAndFlags & IP6F_OFF_MASK);
877}
878#endif
879
884
885typedef struct _IPV6_OPTION_HEADER {
889
890typedef enum {
898
903
908
909typedef _Struct_size_bytes_(_Inexpressible_(Length)) struct _IPV6_ROUTING_HEADER {
910 UCHAR NextHeader;
912 UCHAR RoutingType;
913 UCHAR SegmentsLeft;
914 UCHAR Reserved[4];
916
917typedef struct nd_router_solicit {
920
921typedef struct nd_router_advert {
926
928 struct {
934 };
937
938typedef struct nd_neighbor_solicit {
942
943typedef struct nd_neighbor_advert {
947
949 struct {
955 };
958
959typedef struct nd_redirect {
964
965typedef struct nd_opt_hdr {
969
970typedef enum {
983
984typedef struct nd_opt_prefix_info {
988 union {
990 struct {
991 UINT8 Route : 1; // Least significant bit.
998 };
1001 union {
1003 struct {
1006 };
1007 };
1010
1011typedef struct nd_opt_rd_hdr {
1017
1018typedef struct nd_opt_mtu {
1024
1025typedef struct nd_opt_route_info {
1029 union {
1031 struct {
1035 };
1039
1040typedef struct _MLD_HEADER {
1046
1047typedef enum {
1051
1052typedef struct _MLDV2_QUERY_HEADER {
1054 union {
1056 struct {
1061 };
1062 };
1068 union {
1070 struct {
1074 };
1075 };
1078
1085
1086typedef struct _MLDV2_REPORT_HEADER {
1091
1093
1094#pragma pack(push, 1)
1095
1096typedef struct tcp_hdr {
1108#if NDIS_RECEIVE_UNALIGNED
1109typedef TCP_HDR UNALIGNED *PTCP_HDR;
1110#else
1112#endif
1113
1114typedef struct tcp_opt_mss {
1119
1120typedef struct tcp_opt_ws {
1125
1130
1131typedef struct tcp_opt_sack {
1137 } Block[0];
1139
1140typedef struct tcp_opt_ts {
1146
1147typedef struct tcp_opt_unknown {
1151
1152#pragma pack(pop)
1153
1154typedef struct DL_TUNNEL_ADDRESS {
1159
1162
1163typedef enum _TUNNEL_SUB_TYPE {
1168
1169#pragma pack(push, 1)
1170
1171typedef struct DL_TEREDO_ADDRESS {
1173 union {
1175 struct {
1179 };
1180 };
1182
1183typedef struct _IPTLS_METADATA {
1186
1187#pragma pack(pop)
1188
1190
1195
1196typedef struct _NPI_MODULEID {
1199#ifdef __midl
1200 [switch_type(NPI_MODULEID_TYPE), switch_is(Type)]
1201#endif
1202 union {
1203#ifdef __midl
1204 [case(MIT_GUID)]
1205#endif
1207#ifdef __midl
1208 [case(MIT_IF_LUID)]
1209#endif
1211#ifdef __midl
1212 [default];
1213#endif
1214 };
1217
1218#if !defined(__midl)
1219__inline
1220BOOLEAN
1222 _In_ PNPI_MODULEID ModuleId1,
1223 _In_ PNPI_MODULEID ModuleId2)
1224{
1225 if (ModuleId1->Type == ModuleId2->Type)
1226 {
1227 if (ModuleId1->Type == MIT_GUID)
1228 {
1229#ifdef __cplusplus
1230 return !!InlineIsEqualGUID(ModuleId1->Guid, ModuleId2->Guid);
1231#else
1232 return (BOOLEAN)InlineIsEqualGUID(&ModuleId1->Guid,
1233 &ModuleId2->Guid);
1234#endif
1235 }
1236 else if (ModuleId1->Type == MIT_IF_LUID)
1237 {
1238 return (BOOLEAN)RtlEqualMemory(&ModuleId1->IfLuid,
1239 &ModuleId2->IfLuid,
1240 sizeof(LUID));
1241 }
1242 }
1243 return FALSE;
1244}
1245#endif
1246
1247typedef GUID NPIID;
1249
1266
1267#ifdef NETIODEF_DEFINED_ASSERT
1268#undef ASSERT
1269#endif
1270
1271#ifdef __cplusplus
1272}
1273#endif
1274
1275#endif /* _NETIODEF_ */
unsigned short UINT16
unsigned char BOOLEAN
unsigned long long UINT64
unsigned char UINT8
unsigned int UINT32
Type
Definition: Type.h:7
Definition: Header.h:9
#define UNALIGNED
Definition: crtdefs.h:144
#define FALSE
Definition: types.h:117
unsigned char Byte
Definition: zlib.h:37
#define RtlEqualMemory(dst, src, len)
Definition: kdvm.h:18
#define _Struct_size_bytes_(size)
Definition: ms_sal.h:591
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_reads_(size)
Definition: ms_sal.h:319
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
#define ETH_LENGTH_OF_SNAP_HEADER
Definition: netiodef.h:72
struct _ICMPV4_TIMESTAMP_MESSAGE ICMPV4_TIMESTAMP_MESSAGE
struct _IPV4_TIMESTAMP_OPTION * PIPV4_TIMESTAMP_OPTION
CONST NPI_MODULEID NPI_MS_FL_WANARP_MODULEID
DL_ADDRESS_TYPE
Definition: netiodef.h:379
@ DlBroadcast
Definition: netiodef.h:382
@ DlUnicast
Definition: netiodef.h:380
@ DlMulticast
Definition: netiodef.h:381
_TUNNEL_SUB_TYPE
Definition: netiodef.h:1163
@ TUNNEL_SUB_TYPE_NONE
Definition: netiodef.h:1164
@ TUNNEL_SUB_TYPE_IPTLS
Definition: netiodef.h:1166
@ TUNNEL_SUB_TYPE_CP
Definition: netiodef.h:1165
struct nd_router_advert ND_ROUTER_ADVERT_HEADER
CONST NPIID * PNPIID
Definition: netiodef.h:1248
struct _IPV6_HEADER * PIPV6_HEADER
struct nd_neighbor_solicit ND_NEIGHBOR_SOLICIT_HEADER
struct _TOKENRING_HEADER * PTOKENRING_HEADER
enum DL_ADDRESS_TYPE * PDL_ADDRESS_TYPE
IP_OPTION_TIMESTAMP_FLAGS
Definition: netiodef.h:697
@ IP_OPTION_TIMESTAMP_ADDRESS
Definition: netiodef.h:699
@ IP_OPTION_TIMESTAMP_ONLY
Definition: netiodef.h:698
@ IP_OPTION_TIMESTAMP_SPECIFIC_ADDRESS
Definition: netiodef.h:700
struct _IPV6_FRAGMENT_HEADER IPV6_FRAGMENT_HEADER
struct _IPV6_FRAGMENT_HEADER * PIPV6_FRAGMENT_HEADER
* PIPV6_ROUTING_HEADER
Definition: netiodef.h:915
struct _IPTLS_METADATA * PIPTLS_METADATA
union _DL_EI64 * PDL_EI64
Definition: netiodef.h:415
struct _ETHERNET_HEADER ETHERNET_HEADER
struct _ICMPV4_ROUTER_ADVERT_ENTRY * PICMPV4_ROUTER_ADVERT_ENTRY
struct _ARP_HEADER * PARP_HEADER
struct _IGMPV3_QUERY_HEADER IGMPV3_QUERY_HEADER
struct _IPV4_TIMESTAMP_OPTION IPV4_TIMESTAMP_OPTION
ARP_HARDWARE_TYPE
Definition: netiodef.h:776
@ ARP_HW_802
Definition: netiodef.h:778
@ ARP_HW_ENET
Definition: netiodef.h:777
struct nd_router_advert * PND_ROUTER_ADVERT_HEADER
UINT32 * PSEQ_NUM
Definition: netiodef.h:1092
struct _IPV6_HEADER IPV6_HEADER
struct _NPI_MODULEID NPI_MODULEID
ICMP_HEADER ICMPV4_HEADER
Definition: netiodef.h:712
struct nd_opt_mtu ND_OPTION_MTU
struct _IPV6_EXTENSION_HEADER * PIPV6_EXTENSION_HEADER
union _IPV6_ROUTER_ADVERTISEMENT_FLAGS IPV6_ROUTER_ADVERTISEMENT_FLAGS
__inline BOOLEAN NmrIsEqualNpiModuleId(_In_ PNPI_MODULEID ModuleId1, _In_ PNPI_MODULEID ModuleId2)
Definition: netiodef.h:1221
ICMP_HEADER * PICMPV4_HEADER
Definition: netiodef.h:712
UINT32 HANDLE32
Definition: netiodef.h:48
struct _IPV6_OPTION_JUMBOGRAM IPV6_OPTION_JUMBOGRAM
struct tcp_opt_ws TCP_OPT_WS
struct nd_opt_hdr * PND_OPTION_HDR
struct nd_neighbor_solicit * PND_NEIGHBOR_SOLICIT_HEADER
struct nd_opt_prefix_info ND_OPTION_PREFIX_INFO
struct _IGMPV3_REPORT_RECORD_HEADER IGMPV3_REPORT_RECORD_HEADER
IGMP_MAX_RESP_CODE_TYPE
Definition: netiodef.h:798
@ IGMP_MAX_RESP_CODE_TYPE_NORMAL
Definition: netiodef.h:799
@ IGMP_MAX_RESP_CODE_TYPE_FLOAT
Definition: netiodef.h:800
struct _IPV6_OPTION_ROUTER_ALERT * PIPV6_OPTION_ROUTER_ALERT
__inline BOOLEAN TokenRingGetSourceRouteIndicator(_In_ CONST UNALIGNED DL_EUI48 *Source)
Definition: netiodef.h:525
ICMP_HEADER * PICMPV6_HEADER
Definition: netiodef.h:593
ND_OPTION_TYPE
Definition: netiodef.h:970
@ ND_OPT_ADVERTISEMENT_INTERVAL
Definition: netiodef.h:977
@ ND_OPT_TARGET_ADDR_LIST
Definition: netiodef.h:980
@ ND_OPT_NBMA_SHORTCUT_LIMIT
Definition: netiodef.h:976
@ ND_OPT_REDIRECTED_HEADER
Definition: netiodef.h:974
@ ND_OPT_SOURCE_ADDR_LIST
Definition: netiodef.h:979
@ ND_OPT_MTU
Definition: netiodef.h:975
@ ND_OPT_TARGET_LINKADDR
Definition: netiodef.h:972
@ ND_OPT_HOME_AGENT_INFORMATION
Definition: netiodef.h:978
@ ND_OPT_PREFIX_INFORMATION
Definition: netiodef.h:973
@ ND_OPT_ROUTE_INFO
Definition: netiodef.h:981
@ ND_OPT_SOURCE_LINKADDR
Definition: netiodef.h:971
__inline VOID TokenRingResetSourceRouteIndicator(_Out_ UNALIGNED DL_EUI48 *Source)
Definition: netiodef.h:541
struct _ICMPV4_ADDRESS_MASK_MESSAGE ICMPV4_ADDRESS_MASK_MESSAGE
struct _SNAP_HEADER SNAP_HEADER
struct nd_opt_route_info * PND_OPTION_ROUTE_INFO
__inline UCHAR Ip4HeaderLengthInBytes(_In_ CONST UNALIGNED IPV4_HEADER *Header)
Definition: netiodef.h:634
struct _IPTLS_METADATA IPTLS_METADATA
CONST NPI_MODULEID NPI_MS_FL4T_MODULEID
struct _IPV6_OPTION_JUMBOGRAM * PIPV6_OPTION_JUMBOGRAM
enum _NPI_MODULEID_TYPE NPI_MODULEID_TYPE
struct _MLDV2_REPORT_HEADER * PMLDV2_REPORT_HEADER
struct _MLD_HEADER * PMLD_HEADER
struct tcp_opt_sack TCP_OPT_SACK
struct _ICMP_HEADER ICMP_HEADER
struct _MLDV2_REPORT_RECORD_HEADER * PMLDV2_REPORT_RECORD_HEADER
UINT8 * PHANDLE8
Definition: netiodef.h:46
TCP_HDR * PTCP_HDR
Definition: netiodef.h:1111
struct _ICMPV4_ROUTER_ADVERT_HEADER ICMPV4_ROUTER_ADVERT_HEADER
struct _ETHERNET_HEADER * PETHERNET_HEADER
struct _IPV4_ROUTING_HEADER IPV4_ROUTING_HEADER
struct nd_opt_route_info ND_OPTION_ROUTE_INFO
struct _ARCNET_HEADER * PARCNET_HEADER
#define TOKENRING_SOURCEROUTE_INDICATOR
Definition: netiodef.h:89
struct tcp_hdr TCP_HDR
struct _MLDV2_REPORT_HEADER MLDV2_REPORT_HEADER
struct _IPV6_EXTENSION_HEADER IPV6_EXTENSION_HEADER
struct nd_redirect ND_REDIRECT_HEADER
ICMP_MESSAGE * PICMPV4_MESSAGE
Definition: netiodef.h:713
struct _ICMPV4_ROUTER_ADVERT_ENTRY ICMPV4_ROUTER_ADVERT_ENTRY
C_ASSERT((sizeof(TOKENRING_HEADER)+sizeof(SNAP_HEADER)+SOURCEROUTE_SIZE_MAXIMUM)< DL_HEADER_LENGTH_MAXIMUM)
CONST NPIID NPI_NETWORK_LAYER_ID
struct _SOURCEROUTE_HEADER SOURCEROUTE_HEADER
#define ETH_LENGTH_OF_HEADER
Definition: netiodef.h:70
struct tcp_opt_unknown TCP_OPT_UNKNOWN
enum _TUNNEL_SUB_TYPE TUNNEL_SUB_TYPE
struct nd_opt_hdr ND_OPTION_HDR
struct tcp_opt_sack_permitted TCP_OPT_SACK_PERMITTED
struct _SOURCEROUTE_HEADER * PSOURCEROUTE_HEADER
union _DL_EI48 * PDL_EI48
Definition: netiodef.h:398
enum ICMP4_TIME_EXCEED_CODE * PICMP4_TIME_EXCEED_CODE
struct _ICMPV4_ROUTER_ADVERT_HEADER * PICMPV4_ROUTER_ADVERT_HEADER
struct _MLD_HEADER MLD_HEADER
struct _MLDV2_QUERY_HEADER * PMLDV2_QUERY_HEADER
ICMP_MESSAGE ICMPV6_MESSAGE
Definition: netiodef.h:594
UINT64 * PHANDLE64
Definition: netiodef.h:49
#define DL_ADDRESS_LENGTH_MAXIMUM
Definition: netiodef.h:54
struct DL_TEREDO_ADDRESS * PDL_TEREDO_ADDRESS
enum ICMP4_UNREACH_CODE * PICMP4_UNREACH_CODE
struct nd_neighbor_advert ND_NEIGHBOR_ADVERT_HEADER
UINT16 HANDLE16
Definition: netiodef.h:47
_NPI_MODULEID_TYPE
Definition: netiodef.h:1191
@ MIT_IF_LUID
Definition: netiodef.h:1193
@ MIT_GUID
Definition: netiodef.h:1192
struct nd_neighbor_advert * PND_NEIGHBOR_ADVERT_HEADER
struct DL_TUNNEL_ADDRESS * PDL_TUNNEL_ADDRESS
CONST NPI_MODULEID NPI_MS_WANARPV6_MODULEID
CONST NPIID NPI_FRAMING_LAYER_ID
struct _ARCNET_HEADER ARCNET_HEADER
struct nd_opt_prefix_info * PND_OPTION_PREFIX_INFO
union _DL_EUI64 * PDL_EUI64
Definition: netiodef.h:432
struct _IPV6_OPTION_HEADER * PIPV6_OPTION_HEADER
CONST NPI_MODULEID NPI_MS_FL48_MODULEID
struct tcp_opt_ts TCP_OPT_TS
struct _ICMPV4_TIMESTAMP_MESSAGE * PICMPV4_TIMESTAMP_MESSAGE
struct _TOKENRING_HEADER TOKENRING_HEADER
union _DL_OUI * PDL_OUI
Definition: netiodef.h:393
struct _IGMPV3_QUERY_HEADER * PIGMPV3_QUERY_HEADER
CONST NPI_MODULEID NPI_MS_FL4L_MODULEID
struct _IPV4_OPTION_HEADER * PIPV4_OPTION_HEADER
struct _IPV6_OPTION_ROUTER_ALERT IPV6_OPTION_ROUTER_ALERT
IPV6_OPTION_TYPE
Definition: netiodef.h:890
@ IP6OPT_NSAP_ADDR
Definition: netiodef.h:896
@ IP6OPT_ROUTER_ALERT
Definition: netiodef.h:894
@ IP6OPT_PAD1
Definition: netiodef.h:891
@ IP6OPT_PADN
Definition: netiodef.h:892
@ IP6OPT_JUMBO
Definition: netiodef.h:895
@ IP6OPT_TUNNEL_LIMIT
Definition: netiodef.h:893
CONST NPI_MODULEID NPI_MS_TUN_MODULEID
#define ETH_LENGTH_OF_VLAN_HEADER
Definition: netiodef.h:71
ICMP4_UNREACH_CODE
Definition: netiodef.h:715
@ ICMP4_UNREACH_HOST_TOS
Definition: netiodef.h:728
@ ICMP4_UNREACH_HOST_UNKNOWN
Definition: netiodef.h:723
@ ICMP4_UNREACH_FRAG_NEEDED
Definition: netiodef.h:720
@ ICMP4_UNREACH_SOURCEROUTE_FAILED
Definition: netiodef.h:721
@ ICMP4_UNREACH_ISOLATED
Definition: netiodef.h:724
@ ICMP4_UNREACH_NET
Definition: netiodef.h:716
@ ICMP4_UNREACH_HOST_ADMIN
Definition: netiodef.h:726
@ ICMP4_UNREACH_NET_UNKNOWN
Definition: netiodef.h:722
@ ICMP4_UNREACH_PROTOCOL
Definition: netiodef.h:718
@ ICMP4_UNREACH_ADMIN
Definition: netiodef.h:729
@ ICMP4_UNREACH_NET_TOS
Definition: netiodef.h:727
@ ICMP4_UNREACH_PORT
Definition: netiodef.h:719
@ ICMP4_UNREACH_NET_ADMIN
Definition: netiodef.h:725
@ ICMP4_UNREACH_HOST
Definition: netiodef.h:717
struct _IPV4_ROUTING_HEADER * PIPV4_ROUTING_HEADER
CONST NPI_MODULEID NPI_MS_FL6L_MODULEID
CONST NPI_MODULEID NPI_MS_IPV6_MODULEID
ICMP4_TIME_EXCEED_CODE
Definition: netiodef.h:732
@ ICMP4_TIME_EXCEED_TRANSIT
Definition: netiodef.h:733
@ ICMP4_TIME_EXCEED_REASSEMBLY
Definition: netiodef.h:734
struct _MLDV2_QUERY_HEADER MLDV2_QUERY_HEADER
IPV4_OPTION_TYPE
Definition: netiodef.h:665
@ IP_OPT_TS
Definition: netiodef.h:670
@ IP_OPT_SSRR
Definition: netiodef.h:672
@ IP_OPT_SID
Definition: netiodef.h:673
@ IP_OPT_ROUTER_ALERT
Definition: netiodef.h:674
@ IP_OPT_RR
Definition: netiodef.h:671
@ IP_OPT_NOP
Definition: netiodef.h:667
@ IP_OPT_LSRR
Definition: netiodef.h:669
@ IP_OPT_SECURITY
Definition: netiodef.h:668
@ IP_OPT_MULTIDEST
Definition: netiodef.h:675
@ IP_OPT_EOL
Definition: netiodef.h:666
struct _ARP_HEADER ARP_HEADER
struct nd_opt_rd_hdr ND_OPTION_RD_HDR
CONST NPI_MODULEID NPI_MS_NDIS_MODULEID
UINT64 HANDLE64
Definition: netiodef.h:49
enum IPV6_OPTION_TYPE * PIPV6_OPTION_TYPE
enum ND_OPTION_TYPE * PND_OPTION_TYPE
IPV6_ROUTING_HEADER
Definition: netiodef.h:915
enum _TUNNEL_SUB_TYPE * PTUNNEL_SUB_TYPE
#define IP4_OFF_MASK
Definition: netiodef.h:135
struct _IPV6_OPTION_HEADER IPV6_OPTION_HEADER
struct tcp_opt_mss TCP_OPT_MSS
struct _SNAP_HEADER * PSNAP_HEADER
#define DL_SIZEOF_IPV4_TUNNEL_ADDRESS
Definition: netiodef.h:369
ICMP_MESSAGE ICMPV4_MESSAGE
Definition: netiodef.h:713
struct _IGMPV3_REPORT_HEADER_ * PIGMPV3_REPORT_HEADER
UINT8 HANDLE8
Definition: netiodef.h:46
struct _MLDV2_REPORT_RECORD_HEADER MLDV2_REPORT_RECORD_HEADER
UINT16 * PHANDLE16
Definition: netiodef.h:47
GUID NPIID
Definition: netiodef.h:1247
struct nd_opt_mtu * PND_OPTION_MTU
CONST SOURCEROUTE_HEADER sourceroute_unspecified
CONST NPI_MODULEID NPI_MS_WANARPV4_MODULEID
#define SOURCEROUTE_SIZE_MAXIMUM
Definition: netiodef.h:84
struct nd_opt_rd_hdr * PND_OPTION_RD_HDR
CONST NPI_MODULEID * PNPI_MODULEID
Definition: netiodef.h:1216
struct nd_redirect * PND_REDIRECT_HEADER
struct _ICMP_MESSAGE ICMP_MESSAGE
CONST NPI_MODULEID NPI_MS_FL68_MODULEID
struct _FDDI_HEADER * PFDDI_HEADER
MLD_MAX_RESP_CODE_TYPE
Definition: netiodef.h:1047
@ MLD_MAX_RESP_CODE_TYPE_NORMAL
Definition: netiodef.h:1048
@ MLD_MAX_RESP_CODE_TYPE_FLOAT
Definition: netiodef.h:1049
ARP_OPCODE
Definition: netiodef.h:771
@ ARP_RESPONSE
Definition: netiodef.h:773
@ ARP_REQUEST
Definition: netiodef.h:772
struct _IGMP_HEADER IGMP_HEADER
NETIO_INLINE DL_ADDRESS_TYPE EthernetAddressType(_In_reads_(sizeof(DL_EUI48)) CONST UCHAR *Address)
Definition: netiodef.h:470
struct nd_router_solicit * PND_ROUTER_SOLICIT_HEADER
#define IP6F_OFF_MASK
Definition: netiodef.h:216
CONST NPI_MODULEID NPI_MS_FL6T_MODULEID
ICMP_MESSAGE * PICMPV6_MESSAGE
Definition: netiodef.h:594
struct nd_router_solicit ND_ROUTER_SOLICIT_HEADER
union _IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS
CONST DL_EUI48 eui48_broadcast
struct _IPV4_OPTION_HEADER IPV4_OPTION_HEADER
#define DL_SIZEOF_IPV6_TUNNEL_ADDRESS
Definition: netiodef.h:370
struct _IGMPV3_REPORT_HEADER_ IGMPV3_REPORT_HEADER
struct _ICMPV4_ROUTER_SOLICIT ICMPV4_ROUTER_SOLICIT
ICMP_HEADER ICMPV6_HEADER
Definition: netiodef.h:593
UINT32 * PHANDLE32
Definition: netiodef.h:48
struct _IPV4_HEADER IPV4_HEADER
#define DL_HEADER_LENGTH_MAXIMUM
Definition: netiodef.h:55
struct _ICMP_HEADER * PICMP_HEADER
struct _ICMP_MESSAGE * PICMP_MESSAGE
#define NETIO_INLINE
Definition: netiodef.h:27
struct _ICMPV4_ADDRESS_MASK_MESSAGE * PICMPV4_ADDRESS_MASK_MESSAGE
TOKENRING_BROADCAST_INDICATOR
Definition: netiodef.h:513
@ TokenRingAllRoutesExplorer
Definition: netiodef.h:515
@ TokenRingSpecificallyRoutedFrame
Definition: netiodef.h:514
@ TokenRingSpanningTreeExplorer
Definition: netiodef.h:516
struct _IGMP_HEADER * PIGMP_HEADER
struct _FDDI_HEADER FDDI_HEADER
struct _VLAN_TAG VLAN_TAG
__inline VOID TokenRingSetSourceRouteIndicator(_Out_ UNALIGNED DL_EUI48 *Source)
Definition: netiodef.h:533
union _IPV6_ROUTER_ADVERTISEMENT_FLAGS * PIPV6_ROUTER_ADVERTISEMENT_FLAGS
CONST NPI_MODULEID NPI_MS_IPV4_MODULEID
UINT32 SEQ_NUM
Definition: netiodef.h:1092
CONST NPI_MODULEID NPI_MS_NMR_MODULEID
union _IPV6_NEIGHBOR_ADVERTISEMENT_FLAGS * PIPV6_NEIGHBOR_ADVERTISEMENT_FLAGS
struct _IGMPV3_REPORT_RECORD_HEADER * PIGMPV3_REPORT_RECORD_HEADER
struct _IPV4_HEADER * PIPV4_HEADER
struct _ICMPV4_ROUTER_SOLICIT * PICMPV4_ROUTER_SOLICIT
NETIO_INLINE DL_ADDRESS_TYPE TokenRingAddressType(_In_ CONST UCHAR *Address)
Definition: netiodef.h:549
enum TOKENRING_BROADCAST_INDICATOR * PTOKENRING_BROADCAST_INDICATOR
COMPARTMENT_ID
Definition: ntbasedef.h:515
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
#define CONST
Definition: pedump.c:81
long LONG
Definition: pedump.c:60
unsigned short USHORT
Definition: pedump.c:61
static WCHAR Address[46]
Definition: ping.c:68
#define InlineIsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:142
DL_EUI64 Eui64
Definition: netiodef.h:1174
IN_ADDR MappedAddress
Definition: netiodef.h:1178
UCHAR IpAddress[0]
Definition: netiodef.h:1157
COMPARTMENT_ID CompartmentId
Definition: netiodef.h:1155
SCOPE_ID ScopeId
Definition: netiodef.h:1156
UINT8 Protocol
Definition: netiodef.h:575
UINT8 Source
Definition: netiodef.h:573
UINT8 Destination
Definition: netiodef.h:574
USHORT ProtocolAddressSpace
Definition: netiodef.h:764
USHORT Opcode
Definition: netiodef.h:767
UCHAR SenderHardwareAddress[0]
Definition: netiodef.h:768
UCHAR HardwareAddressLength
Definition: netiodef.h:765
UCHAR ProtocolAddressLength
Definition: netiodef.h:766
USHORT HardwareAddressSpace
Definition: netiodef.h:763
DL_EUI48 Destination
Definition: netiodef.h:443
DL_EUI48 Source
Definition: netiodef.h:444
DL_EUI48 Source
Definition: netiodef.h:569
UINT8 FrameCode
Definition: netiodef.h:567
DL_EUI48 Destination
Definition: netiodef.h:568
Definition: netiodef.h:745
LONG PreferenceLevel
Definition: netiodef.h:747
IN_ADDR RouterAdvertAddr
Definition: netiodef.h:746
ICMPV4_MESSAGE RaHeader
Definition: netiodef.h:742
ICMPV4_MESSAGE RsHeader
Definition: netiodef.h:738
ICMPV4_MESSAGE Header
Definition: netiodef.h:751
UINT16 Checksum
Definition: netiodef.h:581
UINT8 Code
Definition: netiodef.h:580
UINT8 Type
Definition: netiodef.h:579
ICMP_HEADER Header
Definition: netiodef.h:585
UINT8 Data8[4]
Definition: netiodef.h:589
UINT16 Data16[2]
Definition: netiodef.h:588
union _ICMP_MESSAGE::@3097 Data
UINT32 Data32[1]
Definition: netiodef.h:587
UINT8 QuerierRobustnessVariable
Definition: netiodef.h:815
UINT8 MaxRespCodeMantissa
Definition: netiodef.h:808
IN_ADDR MulticastAddress
Definition: netiodef.h:814
UINT8 SuppressRouterSideProcessing
Definition: netiodef.h:816
UINT8 QueriersQueryInterfaceCode
Definition: netiodef.h:819
UINT8 MaxRespCodeExponent
Definition: netiodef.h:809
UINT8 MaxRespTime
Definition: netiodef.h:791
IN_ADDR MulticastAddress
Definition: netiodef.h:795
UINT8 Type
Definition: netiodef.h:784
UINT8 Code
Definition: netiodef.h:792
UINT16 Checksum
Definition: netiodef.h:794
UINT8 Reserved
Definition: netiodef.h:790
UINT8 VersionType
Definition: netiodef.h:787
UINT8 Version
Definition: netiodef.h:785
ULONGLONG SequenceNumber
Definition: netiodef.h:1184
UINT8 HeaderLength
Definition: netiodef.h:600
UINT16 DontUse1
Definition: netiodef.h:616
UINT8 Protocol
Definition: netiodef.h:624
UINT16 TotalLength
Definition: netiodef.h:611
UINT8 TimeToLive
Definition: netiodef.h:623
UINT16 HeaderChecksum
Definition: netiodef.h:625
UINT16 Identification
Definition: netiodef.h:612
UINT16 DontUse2
Definition: netiodef.h:620
UINT8 EcnField
Definition: netiodef.h:607
UINT8 Version
Definition: netiodef.h:601
IN_ADDR SourceAddress
Definition: netiodef.h:626
UINT16 DontFragment
Definition: netiodef.h:618
IN_ADDR DestinationAddress
Definition: netiodef.h:627
UINT8 TypeOfServiceAndEcnField
Definition: netiodef.h:605
UINT16 FlagsAndOffset
Definition: netiodef.h:614
UINT8 TypeOfService
Definition: netiodef.h:608
UINT8 VersionAndHeaderLength
Definition: netiodef.h:598
UINT16 Reserved
Definition: netiodef.h:619
UINT16 MoreFragments
Definition: netiodef.h:617
IN6_ADDR SourceAddress
Definition: netiodef.h:849
UINT8 NextHeader
Definition: netiodef.h:847
UINT16 PayloadLength
Definition: netiodef.h:846
IN6_ADDR DestinationAddress
Definition: netiodef.h:850
UINT32 VersionClassFlow
Definition: netiodef.h:845
UINT8 HopLimit
Definition: netiodef.h:848
IPV6_OPTION_HEADER Header
Definition: netiodef.h:900
UINT8 JumbogramLength[4]
Definition: netiodef.h:901
IPV6_OPTION_HEADER Header
Definition: netiodef.h:905
UINT16 MaxRespCodeExponent
Definition: netiodef.h:1058
UINT16 MaxRespCodeMantissaLo
Definition: netiodef.h:1060
IN6_ADDR MulticastAddress
Definition: netiodef.h:1064
UINT16 MaxRespCodeType
Definition: netiodef.h:1059
UINT16 MaxRespCodeMantissaHi
Definition: netiodef.h:1057
UINT8 QueriersQueryInterfaceCode
Definition: netiodef.h:1069
UINT8 SuppressRouterSideProcessing
Definition: netiodef.h:1066
ICMPV6_HEADER IcmpHeader
Definition: netiodef.h:1053
UINT8 QuerierRobustnessVariable
Definition: netiodef.h:1065
ICMPV6_HEADER IcmpHeader
Definition: netiodef.h:1087
ICMPV6_HEADER IcmpHeader
Definition: netiodef.h:1041
UINT16 MaxRespTime
Definition: netiodef.h:1042
UINT16 Reserved
Definition: netiodef.h:1043
IN6_ADDR MulticastAddress
Definition: netiodef.h:1044
USHORT Length
Definition: netiodef.h:1197
NPI_MODULEID_TYPE Type
Definition: netiodef.h:1198
UINT16 Type
Definition: netiodef.h:439
UINT8 Control
Definition: netiodef.h:437
UINT8 Ssap
Definition: netiodef.h:436
UINT8 Dsap
Definition: netiodef.h:435
UINT8 Oui[3]
Definition: netiodef.h:438
UINT8 BroadcastIndicator
Definition: netiodef.h:498
UINT8 AcccessControl
Definition: netiodef.h:488
UINT8 FrameControl
Definition: netiodef.h:489
DL_EUI48 Destination
Definition: netiodef.h:490
DL_EUI48 Source
Definition: netiodef.h:491
UINT16 Tag
Definition: netiodef.h:456
UINT16 VID
Definition: netiodef.h:458
UINT16 Type
Definition: netiodef.h:463
UINT16 User_Priority
Definition: netiodef.h:460
UINT16 CFI
Definition: netiodef.h:459
Definition: tcpip.h:126
ICMPV6_MESSAGE nd_na_hdr
Definition: netiodef.h:944
IN6_ADDR nd_na_target
Definition: netiodef.h:945
ICMPV6_MESSAGE nd_ns_hdr
Definition: netiodef.h:939
IN6_ADDR nd_ns_target
Definition: netiodef.h:940
UINT8 nd_opt_len
Definition: netiodef.h:967
UINT8 nd_opt_type
Definition: netiodef.h:966
UINT32 nd_opt_mtu_mtu
Definition: netiodef.h:1022
UINT8 nd_opt_mtu_type
Definition: netiodef.h:1019
UINT8 nd_opt_mtu_len
Definition: netiodef.h:1020
UINT16 nd_opt_mtu_reserved
Definition: netiodef.h:1021
UINT8 nd_opt_pi_site_prefix_len
Definition: netiodef.h:1005
UINT8 nd_opt_pi_prefix_len
Definition: netiodef.h:987
UINT32 nd_opt_pi_valid_time
Definition: netiodef.h:999
UINT8 nd_opt_pi_type
Definition: netiodef.h:985
UINT32 nd_opt_pi_preferred_time
Definition: netiodef.h:1000
UINT8 nd_opt_pi_reserved3[3]
Definition: netiodef.h:1004
struct nd_opt_prefix_info::@3140::@3144 Flags
UINT8 nd_opt_pi_flags_reserved
Definition: netiodef.h:989
IN6_ADDR nd_opt_pi_prefix
Definition: netiodef.h:1008
UINT32 nd_opt_pi_reserved2
Definition: netiodef.h:1002
UINT16 nd_opt_rh_reserved1
Definition: netiodef.h:1014
UINT8 nd_opt_rh_len
Definition: netiodef.h:1013
UINT8 nd_opt_rh_type
Definition: netiodef.h:1012
UINT32 nd_opt_rh_reserved2
Definition: netiodef.h:1015
UINT8 nd_opt_ri_flags_reserved
Definition: netiodef.h:1030
struct nd_opt_route_info::@3147::@3149 Flags
IN6_ADDR nd_opt_ri_prefix
Definition: netiodef.h:1037
UINT32 nd_opt_ri_route_lifetime
Definition: netiodef.h:1036
UINT8 nd_opt_ri_prefix_len
Definition: netiodef.h:1028
UINT8 nd_opt_ri_type
Definition: netiodef.h:1026
IN6_ADDR nd_rd_dst
Definition: netiodef.h:962
IN6_ADDR nd_rd_target
Definition: netiodef.h:961
ICMPV6_MESSAGE nd_rd_hdr
Definition: netiodef.h:960
UINT32 nd_ra_retransmit
Definition: netiodef.h:924
ICMPV6_MESSAGE nd_ra_hdr
Definition: netiodef.h:922
UINT32 nd_ra_reachable
Definition: netiodef.h:923
ICMPV6_MESSAGE nd_rs_hdr
Definition: netiodef.h:918
UINT16 th_dport
Definition: netiodef.h:1098
SEQ_NUM th_ack
Definition: netiodef.h:1100
UINT8 th_len
Definition: netiodef.h:1102
UINT16 th_sport
Definition: netiodef.h:1097
UINT16 th_urp
Definition: netiodef.h:1106
UINT16 th_win
Definition: netiodef.h:1104
UINT8 th_flags
Definition: netiodef.h:1103
UINT16 th_sum
Definition: netiodef.h:1105
SEQ_NUM th_seq
Definition: netiodef.h:1099
UINT8 th_x2
Definition: netiodef.h:1101
UINT16 Mss
Definition: netiodef.h:1117
UINT8 Length
Definition: netiodef.h:1116
UINT8 Kind
Definition: netiodef.h:1115
UINT8 Kind
Definition: netiodef.h:1132
UINT8 Length
Definition: netiodef.h:1133
struct tcp_opt_sack::tcp_opt_sack_block Block[0]
UINT8 Length
Definition: netiodef.h:1142
UINT8 Kind
Definition: netiodef.h:1141
UINT32 EcR
Definition: netiodef.h:1144
UINT32 Val
Definition: netiodef.h:1143
UINT8 Kind
Definition: netiodef.h:1121
UINT8 Length
Definition: netiodef.h:1122
UINT8 ShiftCnt
Definition: netiodef.h:1123
uint32_t ULONG
Definition: typedefs.h:59
uint64_t ULONGLONG
Definition: typedefs.h:67
DL_EI48 Ei48
Definition: netiodef.h:404
DL_OUI Oui
Definition: netiodef.h:403
UINT8 Type
Definition: netiodef.h:425
UINT64 Value
Definition: netiodef.h:419
DL_EI64 Ei64
Definition: netiodef.h:423
DL_EI48 Ei48
Definition: netiodef.h:427
UINT8 Tse
Definition: netiodef.h:426
DL_OUI Oui
Definition: netiodef.h:421
UINT8 Group
Definition: netiodef.h:389
UINT8 Local
Definition: netiodef.h:390
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
#define RtlUshortByteSwap(_x)
Definition: rtlfuncs.h:3197
unsigned char UCHAR
Definition: xmlstorage.h:181