[PSDK] Update gdiplus{flat,types}.h. CORE-9924
[reactos.git] / reactos / include / psdk / tcpioctl.h
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_SET_IP_ADDRESS \
41 _TCP_CTL_CODE(14, METHOD_BUFFERED, FILE_WRITE_ACCESS)
42
43 #define IOCTL_DELETE_IP_ADDRESS \
44 _TCP_CTL_CODE(16, METHOD_BUFFERED, FILE_WRITE_ACCESS)
45
46 #define IF_MIB_STATS_ID 1
47 #define IP_MIB_STATS_ID 1
48 #define IP_MIB_ARPTABLE_ENTRY_ID 0x101
49 #define IP_MIB_ADDRTABLE_ENTRY_ID 0x102
50 #define IP_INTFC_INFO_ID 0x103
51 #define MAX_PHYSADDR_SIZE 8
52
53 /* Address Object Options */
54 #define AO_OPTION_TTL 1
55 #define AO_OPTION_MCASTTTL 2
56 #define AO_OPTION_MCASTIF 3
57 #define AO_OPTION_XSUM 4
58 #define AO_OPTION_IPOPTIONS 5
59 #define AO_OPTION_ADD_MCAST 6
60 #define AO_OPTION_DEL_MCAST 7
61 #define AO_OPTION_TOS 8
62 #define AO_OPTION_IP_DONTFRAGMENT 9
63 #define AO_OPTION_MCASTLOOP 10
64 #define AO_OPTION_BROADCAST 11
65 #define AO_OPTION_IP_HDRINCL 12
66 #define AO_OPTION_RCVALL 13
67 #define AO_OPTION_RCVALL_MCAST 14
68 #define AO_OPTION_RCVALL_IGMPMCAST 15
69 #define AO_OPTION_UNNUMBEREDIF 16
70 #define AO_OPTION_IP_UCASTIF 17
71 #define AO_OPTION_ABSORB_RTRALERT 18
72 #define AO_OPTION_LIMIT_BCASTS 19
73 #define AO_OPTION_INDEX_BIND 20
74 #define AO_OPTION_INDEX_MCASTIF 21
75 #define AO_OPTION_INDEX_ADD_MCAST 22
76 #define AO_OPTION_INDEX_DEL_MCAST 23
77 #define AO_OPTION_IFLIST 24
78 #define AO_OPTION_ADD_IFLIST 25
79 #define AO_OPTION_DEL_IFLIST 26
80 #define AO_OPTION_IP_PKTINFO 27
81 #define AO_OPTION_ADD_MCAST_SRC 28
82 #define AO_OPTION_DEL_MCAST_SRC 29
83 #define AO_OPTION_MCAST_FILTER 30
84 #define AO_OPTION_BLOCK_MCAST_SRC 31
85 #define AO_OPTION_UNBLOCK_MCAST_SRC 32
86 #define AO_OPTION_UDP_CKSUM_COVER 33
87 #define AO_OPTION_WINDOW 34
88 #define AO_OPTION_SCALE_CWIN 35
89 #define AO_OPTION_RCV_HOPLIMIT 36
90 #define AO_OPTION_UNBIND 37
91 #define AO_OPTION_PROTECT 38
92
93 /* TCP connection options */
94 #define TCP_SOCKET_NODELAY 1
95
96 typedef struct IFEntry
97 {
98 ULONG if_index;
99 ULONG if_type;
100 ULONG if_mtu;
101 ULONG if_speed;
102 ULONG if_physaddrlen;
103 UCHAR if_physaddr[MAX_PHYSADDR_SIZE];
104 ULONG if_adminstatus;
105 ULONG if_operstatus;
106 ULONG if_lastchange;
107 ULONG if_inoctets;
108 ULONG if_inucastpkts;
109 ULONG if_innucastpkts;
110 ULONG if_indiscards;
111 ULONG if_inerrors;
112 ULONG if_inunknownprotos;
113 ULONG if_outoctets;
114 ULONG if_outucastpkts;
115 ULONG if_outnucastpkts;
116 ULONG if_outdiscards;
117 ULONG if_outerrors;
118 ULONG if_outqlen;
119 ULONG if_descrlen;
120 UCHAR if_descr[1];
121 } IFEntry;
122
123 typedef struct IPSNMPInfo
124 {
125 ULONG ipsi_forwarding;
126 ULONG ipsi_defaultttl;
127 ULONG ipsi_inreceives;
128 ULONG ipsi_inhdrerrors;
129 ULONG ipsi_inaddrerrors;
130 ULONG ipsi_forwdatagrams;
131 ULONG ipsi_inunknownprotos;
132 ULONG ipsi_indiscards;
133 ULONG ipsi_indelivers;
134 ULONG ipsi_outrequests;
135 ULONG ipsi_routingdiscards;
136 ULONG ipsi_outdiscards;
137 ULONG ipsi_outnoroutes;
138 ULONG ipsi_reasmtimeout;
139 ULONG ipsi_reasmreqds;
140 ULONG ipsi_reasmoks;
141 ULONG ipsi_reasmfails;
142 ULONG ipsi_fragoks;
143 ULONG ipsi_fragfails;
144 ULONG ipsi_fragcreates;
145 ULONG ipsi_numif;
146 ULONG ipsi_numaddr;
147 ULONG ipsi_numroutes;
148 } IPSNMPInfo;
149
150 typedef struct IPAddrEntry
151 {
152 ULONG iae_addr;
153 ULONG iae_index;
154 ULONG iae_mask;
155 ULONG iae_bcastaddr;
156 ULONG iae_reasmsize;
157 USHORT iae_context;
158 USHORT iae_pad;
159 } IPAddrEntry;
160
161 typedef struct IPInterfaceInfo
162 {
163 ULONG iii_flags;
164 ULONG iii_mtu;
165 ULONG iii_speed;
166 ULONG iii_addrlength;
167 UCHAR iii_addr[1];
168 } IPInterfaceInfo;
169
170 #endif/*_TCPIOCTL_H*/