ReactOS
0.4.17-dev-573-g8315b8c
tcpioctl.h
Go to the documentation of this file.
1
/*
2
* tcpioctl.h
3
*
4
* Set and query ioctl constants for tcpip.sys
5
*
6
* Contributors:
7
* Created by Art Yerkes (ayerkes@speakeasy.net) from
8
* drivers/net/tcpip/include/ticonsts.h
9
*
10
* THIS SOFTWARE IS NOT COPYRIGHTED
11
*
12
* This source code is offered for use in the public domain. You may
13
* use, modify or distribute it freely.
14
*
15
* This code is distributed in the hope that it will be useful but
16
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
17
* DISCLAIMED. This includes but is not limited to warranties of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19
*
20
*/
21
22
#ifndef _TCPIOCTL_H
23
#define _TCPIOCTL_H
24
25
#define DD_TCP_DEVICE_NAME L"\\Device\\Tcp"
26
27
/* TCP/UDP/RawIP IOCTL code definitions */
28
29
#define FSCTL_TCP_BASE FILE_DEVICE_NETWORK
30
31
#define _TCP_CTL_CODE(Function, Method, Access) \
32
CTL_CODE(FSCTL_TCP_BASE, Function, Method, Access)
33
34
#define IOCTL_TCP_QUERY_INFORMATION_EX \
35
_TCP_CTL_CODE(0, METHOD_NEITHER, FILE_ANY_ACCESS)
36
37
#define IOCTL_TCP_SET_INFORMATION_EX \
38
_TCP_CTL_CODE(1, METHOD_BUFFERED, FILE_WRITE_ACCESS)
39
40
#define IOCTL_QUERY_IP_HW_ADDRESS \
41
_TCP_CTL_CODE(15, METHOD_BUFFERED, FILE_ANY_ACCESS)
42
43
#define IOCTL_SET_IP_ADDRESS \
44
_TCP_CTL_CODE(14, METHOD_BUFFERED, FILE_WRITE_ACCESS)
45
46
#define IOCTL_DELETE_IP_ADDRESS \
47
_TCP_CTL_CODE(16, METHOD_BUFFERED, FILE_WRITE_ACCESS)
48
49
#define IOCTL_ICMP_ECHO_REQUEST \
50
_TCP_CTL_CODE(0, METHOD_BUFFERED, FILE_ANY_ACCESS)
51
52
#define IF_MIB_STATS_ID 1
53
#define IP_MIB_STATS_ID 1
54
#define IP_MIB_ARPTABLE_ENTRY_ID 0x101
55
#define IP_MIB_ADDRTABLE_ENTRY_ID 0x102
56
#define IP_INTFC_INFO_ID 0x103
57
/* Non public TOIID used to query modules info */
58
#ifdef __REACTOS__
59
#define IP_SPECIFIC_MODULE_ENTRY_ID 0x110
60
#endif
61
#define MAX_PHYSADDR_SIZE 8
62
63
#define TCP_MIB_STAT_ID 1
64
#define UDP_MIB_STAT_ID 1
65
66
/* Address Object Options */
67
#define AO_OPTION_TTL 1
68
#define AO_OPTION_MCASTTTL 2
69
#define AO_OPTION_MCASTIF 3
70
#define AO_OPTION_XSUM 4
71
#define AO_OPTION_IPOPTIONS 5
72
#define AO_OPTION_ADD_MCAST 6
73
#define AO_OPTION_DEL_MCAST 7
74
#define AO_OPTION_TOS 8
75
#define AO_OPTION_IP_DONTFRAGMENT 9
76
#define AO_OPTION_MCASTLOOP 10
77
#define AO_OPTION_BROADCAST 11
78
#define AO_OPTION_IP_HDRINCL 12
79
#define AO_OPTION_RCVALL 13
80
#define AO_OPTION_RCVALL_MCAST 14
81
#define AO_OPTION_RCVALL_IGMPMCAST 15
82
#define AO_OPTION_UNNUMBEREDIF 16
83
#define AO_OPTION_IP_UCASTIF 17
84
#define AO_OPTION_ABSORB_RTRALERT 18
85
#define AO_OPTION_LIMIT_BCASTS 19
86
#define AO_OPTION_INDEX_BIND 20
87
#define AO_OPTION_INDEX_MCASTIF 21
88
#define AO_OPTION_INDEX_ADD_MCAST 22
89
#define AO_OPTION_INDEX_DEL_MCAST 23
90
#define AO_OPTION_IFLIST 24
91
#define AO_OPTION_ADD_IFLIST 25
92
#define AO_OPTION_DEL_IFLIST 26
93
#define AO_OPTION_IP_PKTINFO 27
94
#define AO_OPTION_ADD_MCAST_SRC 28
95
#define AO_OPTION_DEL_MCAST_SRC 29
96
#define AO_OPTION_MCAST_FILTER 30
97
#define AO_OPTION_BLOCK_MCAST_SRC 31
98
#define AO_OPTION_UNBLOCK_MCAST_SRC 32
99
#define AO_OPTION_UDP_CKSUM_COVER 33
100
#define AO_OPTION_WINDOW 34
101
#define AO_OPTION_SCALE_CWIN 35
102
#define AO_OPTION_RCV_HOPLIMIT 36
103
#define AO_OPTION_UNBIND 37
104
#define AO_OPTION_PROTECT 38
105
106
/* TCP connection options */
107
#define TCP_SOCKET_NODELAY 1
108
109
/* ReactOS specific */
110
#define TCP_SOCKET_KEEPALIVE 2
111
#define TCP_SOCKET_KEEPALIVEVALS 3
112
113
typedef
struct
IFEntry
114
{
115
ULONG
if_index
;
116
ULONG
if_type
;
117
ULONG
if_mtu
;
118
ULONG
if_speed
;
119
ULONG
if_physaddrlen
;
120
UCHAR
if_physaddr
[
MAX_PHYSADDR_SIZE
];
121
ULONG
if_adminstatus
;
122
ULONG
if_operstatus
;
123
ULONG
if_lastchange
;
124
ULONG
if_inoctets
;
125
ULONG
if_inucastpkts
;
126
ULONG
if_innucastpkts
;
127
ULONG
if_indiscards
;
128
ULONG
if_inerrors
;
129
ULONG
if_inunknownprotos
;
130
ULONG
if_outoctets
;
131
ULONG
if_outucastpkts
;
132
ULONG
if_outnucastpkts
;
133
ULONG
if_outdiscards
;
134
ULONG
if_outerrors
;
135
ULONG
if_outqlen
;
136
ULONG
if_descrlen
;
137
UCHAR
if_descr
[1];
138
}
IFEntry
;
139
140
typedef
struct
IPSNMPInfo
141
{
142
ULONG
ipsi_forwarding
;
143
ULONG
ipsi_defaultttl
;
144
ULONG
ipsi_inreceives
;
145
ULONG
ipsi_inhdrerrors
;
146
ULONG
ipsi_inaddrerrors
;
147
ULONG
ipsi_forwdatagrams
;
148
ULONG
ipsi_inunknownprotos
;
149
ULONG
ipsi_indiscards
;
150
ULONG
ipsi_indelivers
;
151
ULONG
ipsi_outrequests
;
152
ULONG
ipsi_routingdiscards
;
153
ULONG
ipsi_outdiscards
;
154
ULONG
ipsi_outnoroutes
;
155
ULONG
ipsi_reasmtimeout
;
156
ULONG
ipsi_reasmreqds
;
157
ULONG
ipsi_reasmoks
;
158
ULONG
ipsi_reasmfails
;
159
ULONG
ipsi_fragoks
;
160
ULONG
ipsi_fragfails
;
161
ULONG
ipsi_fragcreates
;
162
ULONG
ipsi_numif
;
163
ULONG
ipsi_numaddr
;
164
ULONG
ipsi_numroutes
;
165
}
IPSNMPInfo
;
166
167
typedef
struct
IPAddrEntry
168
{
169
ULONG
iae_addr
;
170
ULONG
iae_index
;
171
ULONG
iae_mask
;
172
ULONG
iae_bcastaddr
;
173
ULONG
iae_reasmsize
;
174
USHORT
iae_context
;
175
USHORT
iae_pad
;
176
}
IPAddrEntry
;
177
178
typedef
struct
IPInterfaceInfo
179
{
180
ULONG
iii_flags
;
181
ULONG
iii_mtu
;
182
ULONG
iii_speed
;
183
ULONG
iii_addrlength
;
184
UCHAR
iii_addr
[1];
185
}
IPInterfaceInfo
;
186
187
#endif
/*_TCPIOCTL_H*/
USHORT
unsigned short USHORT
Definition:
pedump.c:61
IFEntry
Definition:
tcpioctl.h:114
IFEntry::if_operstatus
ULONG if_operstatus
Definition:
tcpioctl.h:122
IFEntry::if_descr
UCHAR if_descr[1]
Definition:
tcpioctl.h:137
IFEntry::if_inerrors
ULONG if_inerrors
Definition:
tcpioctl.h:128
IFEntry::if_indiscards
ULONG if_indiscards
Definition:
tcpioctl.h:127
IFEntry::if_index
ULONG if_index
Definition:
tcpioctl.h:115
IFEntry::if_inunknownprotos
ULONG if_inunknownprotos
Definition:
tcpioctl.h:129
IFEntry::if_outucastpkts
ULONG if_outucastpkts
Definition:
tcpioctl.h:131
IFEntry::if_innucastpkts
ULONG if_innucastpkts
Definition:
tcpioctl.h:126
IFEntry::if_outnucastpkts
ULONG if_outnucastpkts
Definition:
tcpioctl.h:132
IFEntry::if_descrlen
ULONG if_descrlen
Definition:
tcpioctl.h:136
IFEntry::if_outdiscards
ULONG if_outdiscards
Definition:
tcpioctl.h:133
IFEntry::if_physaddrlen
ULONG if_physaddrlen
Definition:
tcpioctl.h:119
IFEntry::if_inoctets
ULONG if_inoctets
Definition:
tcpioctl.h:124
IFEntry::if_type
ULONG if_type
Definition:
tcpioctl.h:116
IFEntry::if_speed
ULONG if_speed
Definition:
tcpioctl.h:118
IFEntry::if_lastchange
ULONG if_lastchange
Definition:
tcpioctl.h:123
IFEntry::if_mtu
ULONG if_mtu
Definition:
tcpioctl.h:117
IFEntry::if_outoctets
ULONG if_outoctets
Definition:
tcpioctl.h:130
IFEntry::if_outerrors
ULONG if_outerrors
Definition:
tcpioctl.h:134
IFEntry::if_physaddr
UCHAR if_physaddr[MAX_PHYSADDR_SIZE]
Definition:
tcpioctl.h:120
IFEntry::if_outqlen
ULONG if_outqlen
Definition:
tcpioctl.h:135
IFEntry::if_adminstatus
ULONG if_adminstatus
Definition:
tcpioctl.h:121
IFEntry::if_inucastpkts
ULONG if_inucastpkts
Definition:
tcpioctl.h:125
IPAddrEntry
Definition:
tcpioctl.h:168
IPAddrEntry::iae_mask
ULONG iae_mask
Definition:
tcpioctl.h:171
IPAddrEntry::iae_index
ULONG iae_index
Definition:
tcpioctl.h:170
IPAddrEntry::iae_addr
ULONG iae_addr
Definition:
tcpioctl.h:169
IPAddrEntry::iae_bcastaddr
ULONG iae_bcastaddr
Definition:
tcpioctl.h:172
IPAddrEntry::iae_context
USHORT iae_context
Definition:
tcpioctl.h:174
IPAddrEntry::iae_reasmsize
ULONG iae_reasmsize
Definition:
tcpioctl.h:173
IPAddrEntry::iae_pad
USHORT iae_pad
Definition:
tcpioctl.h:175
IPInterfaceInfo
Definition:
tcpioctl.h:179
IPInterfaceInfo::iii_addrlength
ULONG iii_addrlength
Definition:
tcpioctl.h:183
IPInterfaceInfo::iii_addr
UCHAR iii_addr[1]
Definition:
tcpioctl.h:184
IPInterfaceInfo::iii_speed
ULONG iii_speed
Definition:
tcpioctl.h:182
IPInterfaceInfo::iii_mtu
ULONG iii_mtu
Definition:
tcpioctl.h:181
IPInterfaceInfo::iii_flags
ULONG iii_flags
Definition:
tcpioctl.h:180
IPSNMPInfo
Definition:
tcpioctl.h:141
IPSNMPInfo::ipsi_indelivers
ULONG ipsi_indelivers
Definition:
tcpioctl.h:150
IPSNMPInfo::ipsi_defaultttl
ULONG ipsi_defaultttl
Definition:
tcpioctl.h:143
IPSNMPInfo::ipsi_indiscards
ULONG ipsi_indiscards
Definition:
tcpioctl.h:149
IPSNMPInfo::ipsi_reasmfails
ULONG ipsi_reasmfails
Definition:
tcpioctl.h:158
IPSNMPInfo::ipsi_numif
ULONG ipsi_numif
Definition:
tcpioctl.h:162
IPSNMPInfo::ipsi_reasmreqds
ULONG ipsi_reasmreqds
Definition:
tcpioctl.h:156
IPSNMPInfo::ipsi_outnoroutes
ULONG ipsi_outnoroutes
Definition:
tcpioctl.h:154
IPSNMPInfo::ipsi_forwdatagrams
ULONG ipsi_forwdatagrams
Definition:
tcpioctl.h:147
IPSNMPInfo::ipsi_reasmtimeout
ULONG ipsi_reasmtimeout
Definition:
tcpioctl.h:155
IPSNMPInfo::ipsi_numroutes
ULONG ipsi_numroutes
Definition:
tcpioctl.h:164
IPSNMPInfo::ipsi_outdiscards
ULONG ipsi_outdiscards
Definition:
tcpioctl.h:153
IPSNMPInfo::ipsi_numaddr
ULONG ipsi_numaddr
Definition:
tcpioctl.h:163
IPSNMPInfo::ipsi_fragcreates
ULONG ipsi_fragcreates
Definition:
tcpioctl.h:161
IPSNMPInfo::ipsi_inreceives
ULONG ipsi_inreceives
Definition:
tcpioctl.h:144
IPSNMPInfo::ipsi_forwarding
ULONG ipsi_forwarding
Definition:
tcpioctl.h:142
IPSNMPInfo::ipsi_inunknownprotos
ULONG ipsi_inunknownprotos
Definition:
tcpioctl.h:148
IPSNMPInfo::ipsi_inaddrerrors
ULONG ipsi_inaddrerrors
Definition:
tcpioctl.h:146
IPSNMPInfo::ipsi_fragoks
ULONG ipsi_fragoks
Definition:
tcpioctl.h:159
IPSNMPInfo::ipsi_reasmoks
ULONG ipsi_reasmoks
Definition:
tcpioctl.h:157
IPSNMPInfo::ipsi_outrequests
ULONG ipsi_outrequests
Definition:
tcpioctl.h:151
IPSNMPInfo::ipsi_inhdrerrors
ULONG ipsi_inhdrerrors
Definition:
tcpioctl.h:145
IPSNMPInfo::ipsi_routingdiscards
ULONG ipsi_routingdiscards
Definition:
tcpioctl.h:152
IPSNMPInfo::ipsi_fragfails
ULONG ipsi_fragfails
Definition:
tcpioctl.h:160
MAX_PHYSADDR_SIZE
#define MAX_PHYSADDR_SIZE
Definition:
tcpioctl.h:61
UCHAR
unsigned char UCHAR
Definition:
typedefs.h:53
ULONG
uint32_t ULONG
Definition:
typedefs.h:59
sdk
include
psdk
tcpioctl.h
Generated on Sat Aug 1 2026 06:18:02 for ReactOS by
1.9.6