Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184/* * tcpioctl.h * * Set and query ioctl constants for tcpip.sys * * Contributors: * Created by Art Yerkes (ayerkes@speakeasy.net) from * drivers/net/tcpip/include/ticonsts.h * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */
#ifndef _TCPIOCTL_H#define _TCPIOCTL_H
#define DD_TCP_DEVICE_NAME L"\\Device\\Tcp"
/* TCP/UDP/RawIP IOCTL code definitions */
#define FSCTL_TCP_BASE FILE_DEVICE_NETWORK
#define _TCP_CTL_CODE(Function, Method, Access) \ CTL_CODE(FSCTL_TCP_BASE, Function, Method, Access)
#define IOCTL_TCP_QUERY_INFORMATION_EX \ _TCP_CTL_CODE(0, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_TCP_SET_INFORMATION_EX \ _TCP_CTL_CODE(1, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_QUERY_IP_HW_ADDRESS \ _TCP_CTL_CODE(15, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SET_IP_ADDRESS \ _TCP_CTL_CODE(14, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_DELETE_IP_ADDRESS \ _TCP_CTL_CODE(16, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_ICMP_ECHO_REQUEST \ _TCP_CTL_CODE(0, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IF_MIB_STATS_ID 1#define IP_MIB_STATS_ID 1#define IP_MIB_ARPTABLE_ENTRY_ID 0x101#define IP_MIB_ADDRTABLE_ENTRY_ID 0x102#define IP_INTFC_INFO_ID 0x103/* Non public TOIID used to query modules info */#ifdef __REACTOS__#define IP_SPECIFIC_MODULE_ENTRY_ID 0x110#endif#define MAX_PHYSADDR_SIZE 8
#define TCP_MIB_STAT_ID 1#define UDP_MIB_STAT_ID 1
/* Address Object Options */#define AO_OPTION_TTL 1#define AO_OPTION_MCASTTTL 2#define AO_OPTION_MCASTIF 3#define AO_OPTION_XSUM 4#define AO_OPTION_IPOPTIONS 5#define AO_OPTION_ADD_MCAST 6#define AO_OPTION_DEL_MCAST 7#define AO_OPTION_TOS 8#define AO_OPTION_IP_DONTFRAGMENT 9#define AO_OPTION_MCASTLOOP 10#define AO_OPTION_BROADCAST 11#define AO_OPTION_IP_HDRINCL 12#define AO_OPTION_RCVALL 13#define AO_OPTION_RCVALL_MCAST 14#define AO_OPTION_RCVALL_IGMPMCAST 15#define AO_OPTION_UNNUMBEREDIF 16#define AO_OPTION_IP_UCASTIF 17#define AO_OPTION_ABSORB_RTRALERT 18#define AO_OPTION_LIMIT_BCASTS 19#define AO_OPTION_INDEX_BIND 20#define AO_OPTION_INDEX_MCASTIF 21#define AO_OPTION_INDEX_ADD_MCAST 22#define AO_OPTION_INDEX_DEL_MCAST 23#define AO_OPTION_IFLIST 24#define AO_OPTION_ADD_IFLIST 25#define AO_OPTION_DEL_IFLIST 26#define AO_OPTION_IP_PKTINFO 27#define AO_OPTION_ADD_MCAST_SRC 28#define AO_OPTION_DEL_MCAST_SRC 29#define AO_OPTION_MCAST_FILTER 30#define AO_OPTION_BLOCK_MCAST_SRC 31#define AO_OPTION_UNBLOCK_MCAST_SRC 32#define AO_OPTION_UDP_CKSUM_COVER 33#define AO_OPTION_WINDOW 34#define AO_OPTION_SCALE_CWIN 35#define AO_OPTION_RCV_HOPLIMIT 36#define AO_OPTION_UNBIND 37#define AO_OPTION_PROTECT 38
/* TCP connection options */#define TCP_SOCKET_NODELAY 1
typedef struct IFEntry{ ULONG if_index; ULONG if_type; ULONG if_mtu; ULONG if_speed; ULONG if_physaddrlen; UCHAR if_physaddr[MAX_PHYSADDR_SIZE]; ULONG if_adminstatus; ULONG if_operstatus; ULONG if_lastchange; ULONG if_inoctets; ULONG if_inucastpkts; ULONG if_innucastpkts; ULONG if_indiscards; ULONG if_inerrors; ULONG if_inunknownprotos; ULONG if_outoctets; ULONG if_outucastpkts; ULONG if_outnucastpkts; ULONG if_outdiscards; ULONG if_outerrors; ULONG if_outqlen; ULONG if_descrlen; UCHAR if_descr[1];} IFEntry;
typedef struct IPSNMPInfo{ ULONG ipsi_forwarding; ULONG ipsi_defaultttl; ULONG ipsi_inreceives; ULONG ipsi_inhdrerrors; ULONG ipsi_inaddrerrors; ULONG ipsi_forwdatagrams; ULONG ipsi_inunknownprotos; ULONG ipsi_indiscards; ULONG ipsi_indelivers; ULONG ipsi_outrequests; ULONG ipsi_routingdiscards; ULONG ipsi_outdiscards; ULONG ipsi_outnoroutes; ULONG ipsi_reasmtimeout; ULONG ipsi_reasmreqds; ULONG ipsi_reasmoks; ULONG ipsi_reasmfails; ULONG ipsi_fragoks; ULONG ipsi_fragfails; ULONG ipsi_fragcreates; ULONG ipsi_numif; ULONG ipsi_numaddr; ULONG ipsi_numroutes;} IPSNMPInfo;
typedef struct IPAddrEntry{ ULONG iae_addr; ULONG iae_index; ULONG iae_mask; ULONG iae_bcastaddr; ULONG iae_reasmsize; USHORT iae_context; USHORT iae_pad;} IPAddrEntry;
typedef struct IPInterfaceInfo{ ULONG iii_flags; ULONG iii_mtu; ULONG iii_speed; ULONG iii_addrlength; UCHAR iii_addr[1];} IPInterfaceInfo;
#endif/*_TCPIOCTL_H*/