1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Stewart Gordon 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC src/core/sys/windows/_iptypes.d) 9 */ 10 module core.sys.windows.iptypes; 11 version (Windows): 12 @system: 13 14 import core.sys.windows.windef; 15 import core.stdc.time; 16 //#include <sys/types.h> 17 18 enum size_t 19 DEFAULT_MINIMUM_ENTITIES = 32, 20 MAX_ADAPTER_ADDRESS_LENGTH = 8, 21 MAX_ADAPTER_DESCRIPTION_LENGTH = 128, 22 MAX_ADAPTER_NAME_LENGTH = 256, 23 MAX_DOMAIN_NAME_LEN = 128, 24 MAX_HOSTNAME_LEN = 128, 25 MAX_SCOPE_ID_LEN = 256; 26 27 enum UINT 28 BROADCAST_NODETYPE = 1, 29 PEER_TO_PEER_NODETYPE = 2, 30 MIXED_NODETYPE = 4, 31 HYBRID_NODETYPE = 8; 32 33 enum : UINT { 34 IF_OTHER_ADAPTERTYPE, 35 IF_ETHERNET_ADAPTERTYPE, 36 IF_TOKEN_RING_ADAPTERTYPE, 37 IF_FDDI_ADAPTERTYPE, 38 IF_PPP_ADAPTERTYPE, 39 IF_LOOPBACK_ADAPTERTYPE // = 5 40 } 41 42 struct IP_ADDRESS_STRING { 43 char[16] String = 0; 44 } 45 alias IP_ADDRESS_STRING IP_MASK_STRING; 46 alias IP_ADDRESS_STRING* PIP_ADDRESS_STRING, PIP_MASK_STRING; 47 48 struct IP_ADDR_STRING { 49 IP_ADDR_STRING* Next; 50 IP_ADDRESS_STRING IpAddress; 51 IP_MASK_STRING IpMask; 52 DWORD Context; 53 } 54 alias IP_ADDR_STRING* PIP_ADDR_STRING; 55 56 struct IP_ADAPTER_INFO { 57 IP_ADAPTER_INFO* Next; 58 DWORD ComboIndex; 59 char[MAX_ADAPTER_NAME_LENGTH+4] AdapterName = 0; 60 char[MAX_ADAPTER_DESCRIPTION_LENGTH+4] Description = 0; 61 UINT AddressLength; 62 BYTE[MAX_ADAPTER_ADDRESS_LENGTH] Address = 0; 63 DWORD Index; 64 UINT Type; 65 UINT DhcpEnabled; 66 PIP_ADDR_STRING CurrentIpAddress; 67 IP_ADDR_STRING IpAddressList; 68 IP_ADDR_STRING GatewayList; 69 IP_ADDR_STRING DhcpServer; 70 BOOL HaveWins; 71 IP_ADDR_STRING PrimaryWinsServer; 72 IP_ADDR_STRING SecondaryWinsServer; 73 time_t LeaseObtained; 74 time_t LeaseExpires; 75 } 76 alias IP_ADAPTER_INFO* PIP_ADAPTER_INFO; 77 78 struct IP_PER_ADAPTER_INFO { 79 UINT AutoconfigEnabled; 80 UINT AutoconfigActive; 81 PIP_ADDR_STRING CurrentDnsServer; 82 IP_ADDR_STRING DnsServerList; 83 } 84 alias IP_PER_ADAPTER_INFO* PIP_PER_ADAPTER_INFO; 85 86 struct FIXED_INFO { 87 char[MAX_HOSTNAME_LEN+4] HostName = 0; 88 char[MAX_DOMAIN_NAME_LEN+4] DomainName = 0; 89 PIP_ADDR_STRING CurrentDnsServer; 90 IP_ADDR_STRING DnsServerList; 91 UINT NodeType; 92 char[MAX_SCOPE_ID_LEN+4] ScopeId = 0; 93 UINT EnableRouting; 94 UINT EnableProxy; 95 UINT EnableDns; 96 } 97 alias FIXED_INFO* PFIXED_INFO; 98