/********************************************************************/ /** Copyright(c) Microsoft Corp., 1990-1998 **/ /********************************************************************/ // // This file contains public definitions exported to transport layer and // application software. // // // IP type definitions. // typedef unsigned long IPAddr; // An IP address. // // The ip_option_information structure describes the options to be // included in the header of an IP packet. The TTL, TOS, and Flags // values are carried in specific fields in the header. The OptionsData // bytes are carried in the options area following the standard IP header. // With the exception of source route options, this data must be in the // format to be transmitted on the wire as specified in RFC 791. A source // route option should contain the full route - first hop thru final // destination - in the route data. The first hop will be pulled out of the // data and the option will be reformatted accordingly. Otherwise, the route // option should be formatted as specified in RFC 791. // struct ip_option_information { unsigned char Ttl; // Time To Live unsigned char Tos; // Type Of Service unsigned char Flags; // IP header flags unsigned char OptionsSize; // Size in bytes of options data unsigned char FAR *OptionsData; // Pointer to options data }; /* ip_option_information */ #define MAX_OPT_SIZE 40 // Maximum length of IP options in bytes #define TCP_SOCKET_NODELAY 1 #define TCP_SOCKET_KEEPALIVE 2 #define TCP_SOCKET_OOBINLINE 3 #define TCP_SOCKET_BSDURGENT 4 #define TCP_SOCKET_ATMARK 5 #define TCP_SOCKET_WINDOW 6 #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 //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; #define IP_MIB_STATS_ID 1 #define IP_MIB_ADDRTABLE_ENTRY_ID 0x102 #define IP_INTFC_FLAG_P2P 1 //typedef struct IPInterfaceInfo { // ulong iii_flags; // ulong iii_mtu; // ulong iii_speed; // ulong iii_addrlength; // uchar iii_addr[1]; //} IPInterfaceInfo; #define IF_MIB_STATS_ID 1 #define MAX_PHYSADDR_SIZE 8 #define MAX_IFDESCR_LEN 256 #define TL_INSTANCE 0 //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; // // Device Name - this string is the name of the device. It is the name // that should be passed to CreateFile when accessing the device. // #define DD_TCP_DEVICE_NAME L"\\Device\\Tcp" #define DD_UDP_DEVICE_NAME L"\\Device\\Udp" #define DD_RAW_IP_DEVICE_NAME L"\\Device\\RawIp" #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 IP_INTFC_INFO_ID 0x103