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