Mercurial > projects > ddbg_continued
diff win32/ipexport.d @ 1:4a9dcbd9e54f
-files of 0.13 beta
-fixes so that it now compiles with the current dmd version
author | marton@basel.hu |
---|---|
date | Tue, 05 Apr 2011 20:44:01 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/win32/ipexport.d Tue Apr 05 20:44:01 2011 +0200 @@ -0,0 +1,108 @@ +/***********************************************************************\ +* ipexport.d * +* * +* Windows API header module * +* * +* Translated from MinGW Windows headers * +* by Stewart Gordon * +* * +* Placed into public domain * +\***********************************************************************/ +module win32.ipexport; + +private import win32.windef; + +const size_t MAX_ADAPTER_NAME = 128; + +// IP STATUS flags +enum : IP_STATUS { + IP_SUCCESS = 0, + IP_STATUS_BASE = 11000, + IP_BUF_TOO_SMALL, + IP_DEST_NET_UNREACHABLE, + IP_DEST_HOST_UNREACHABLE, + IP_DEST_PROT_UNREACHABLE, + IP_DEST_PORT_UNREACHABLE, + IP_NO_RESOURCES, + IP_BAD_OPTION, + IP_HW_ERROR, + IP_PACKET_TOO_BIG, + IP_REQ_TIMED_OUT, + IP_BAD_REQ, + IP_BAD_ROUTE, + IP_TTL_EXPIRED_TRANSIT, + IP_TTL_EXPIRED_REASSEM, + IP_PARAM_PROBLEM, + IP_SOURCE_QUENCH, + IP_OPTION_TOO_BIG, + IP_BAD_DESTINATION, + IP_ADDR_DELETED, + IP_SPEC_MTU_CHANGE, + IP_MTU_CHANGE, + IP_UNLOAD, // = IP_STATUS_BASE + 22 + IP_GENERAL_FAILURE = IP_STATUS_BASE + 50, + MAX_IP_STATUS = IP_GENERAL_FAILURE, + IP_PENDING = IP_STATUS_BASE + 255 +} + +// IP header Flags values +const byte IP_FLAG_DF = 2; + +// IP Option types +enum : ubyte { + IP_OPT_EOL = 0, + IP_OPT_NOP = 0x01, + IP_OPT_RR = 0x07, + IP_OPT_SECURITY = 0x82, + IP_OPT_LSRR = 0x83, + IP_OPT_SSRR = 0x89, + IP_OPT_TS = 0x44, + IP_OPT_SID = 0x88, + IP_OPT_ROUTER_ALERT = 0x94 +} + +const ubyte MAX_OPT_SIZE = 40; + +alias uint IPAddr, IPMask, IP_STATUS; + +struct IP_OPTION_INFORMATION { + ubyte Ttl; + ubyte Tos; + ubyte Flags; + ubyte OptionsSize; + ubyte* OptionsData; +} +alias IP_OPTION_INFORMATION* PIP_OPTION_INFORMATION; + +struct ICMP_ECHO_REPLY { + IPAddr Address; + uint Status; + uint RoundTripTime; + ushort DataSize; + ushort Reserved; + void* Data; + IP_OPTION_INFORMATION Options; +} +alias ICMP_ECHO_REPLY* PICMP_ECHO_REPLY; + +struct IP_ADAPTER_INDEX_MAP { + ULONG Index; + WCHAR[MAX_ADAPTER_NAME] Name; +} +alias IP_ADAPTER_INDEX_MAP* PIP_ADAPTER_INDEX_MAP; + +struct IP_INTERFACE_INFO { + LONG NumAdapters; + IP_ADAPTER_INDEX_MAP[1] _Adapter; + + IP_ADAPTER_INDEX_MAP* Adapter() { return _Adapter.ptr; } +} +alias IP_INTERFACE_INFO* PIP_INTERFACE_INFO; + +struct IP_UNIDIRECTIONAL_ADAPTER_ADDRESS { + ULONG NumAdapters; + IPAddr[1] _Address; + + IPAddr* Address() { return _Address.ptr; } +} +alias IP_UNIDIRECTIONAL_ADAPTER_ADDRESS* PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS;