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