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