Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6429 siemargl 1
/**
2
 * This file has no copyright assigned and is placed in the Public Domain.
3
 * This file is part of the w64 mingw-runtime package.
4
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5
 */
6
#ifndef _MSTCPIP_
7
#define _MSTCPIP_
8
 
9
#include <_mingw_unicode.h>
10
 
11
struct tcp_keepalive {
12
  u_long onoff;
13
  u_long keepalivetime;
14
  u_long keepaliveinterval;
15
};
16
 
17
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
18
#define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)
19
#define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3)
20
#define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4)
21
#define SIO_ABSORB_RTRALERT _WSAIOW(IOC_VENDOR,5)
22
#define SIO_UCAST_IF _WSAIOW(IOC_VENDOR,6)
23
#define SIO_LIMIT_BROADCASTS _WSAIOW(IOC_VENDOR,7)
24
#define SIO_INDEX_BIND _WSAIOW(IOC_VENDOR,8)
25
#define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9)
26
#define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10)
27
#define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11)
28
 
29
#define RCVALL_OFF 0
30
#define RCVALL_ON 1
31
#define RCVALL_SOCKETLEVELONLY 2
32
 
33
#if (_WIN32_WINNT >= 0x0502)
34
#define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x00000001
35
#define SOCKET_SETTINGS_ALLOW_INSECURE 0x00000002
36
 
37
typedef enum _SOCKET_SECURITY_PROTOCOL {
38
  SOCKET_SECURITY_PROTOCOL_DEFAULT,
39
  SOCKET_SECURITY_PROTOCOL_IPSEC,
40
  SOCKET_SECURITY_PROTOCOL_INVALID
41
} SOCKET_SECURITY_PROTOCOL;
42
 
43
typedef enum _SOCKET_USAGE_TYPE {
44
  SYSTEM_CRITICAL_SOCKET   = 1
45
} SOCKET_USAGE_TYPE;
46
 
47
typedef struct _SOCKET_PEER_TARGET_NAME {
48
  SOCKET_SECURITY_PROTOCOL SecurityProtocol;
49
  SOCKADDR_STORAGE         PeerAddress;
50
  ULONG                    PeerTargetNameStringLen;
51
  wchar_t                  AllStrings[];
52
} SOCKET_PEER_TARGET_NAME;
53
 
54
#define SOCKET_INFO_CONNECTION_SECURED		0x00000001
55
#define SOCKET_INFO_CONNECTION_ENCRYPTED	0x00000002
56
#define SOCKET_INFO_CONNECTION_IMPERSONATED	0x00000004
57
 
58
typedef struct _SOCKET_SECURITY_QUERY_INFO {
59
  SOCKET_SECURITY_PROTOCOL SecurityProtocol;
60
  ULONG                    Flags;
61
  UINT64                   PeerApplicationAccessTokenHandle;
62
  UINT64                   PeerMachineAccessTokenHandle;
63
} SOCKET_SECURITY_QUERY_INFO;
64
 
65
typedef struct _SOCKET_SECURITY_QUERY_TEMPLATE {
66
  SOCKET_SECURITY_PROTOCOL SecurityProtocol;
67
  SOCKADDR_STORAGE         PeerAddress;
68
  ULONG                    PeerTokenAccessMask;
69
} SOCKET_SECURITY_QUERY_TEMPLATE;
70
 
71
typedef struct _SOCKET_SECURITY_SETTINGS {
72
  SOCKET_SECURITY_PROTOCOL SecurityProtocol;
73
  ULONG                    SecurityFlags;
74
} SOCKET_SECURITY_SETTINGS;
75
 
76
#define SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION 0x00000001
77
 
78
typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC {
79
  SOCKET_SECURITY_PROTOCOL SecurityProtocol;
80
  ULONG                    SecurityFlags;
81
  ULONG                    IpsecFlags;
82
  GUID                     AuthipMMPolicyKey;
83
  GUID                     AuthipQMPolicyKey;
84
  GUID                     Reserved;
85
  UINT64                   Reserved2;
86
  ULONG                    UserNameStringLen;
87
  ULONG                    DomainNameStringLen;
88
  ULONG                    PasswordStringLen;
89
  wchar_t                  AllStrings[];
90
} SOCKET_SECURITY_SETTINGS_IPSEC;
91
 
92
#define RtlIpv6AddressToString __MINGW_NAME_AW(RtlIpv6AddressToString)
93
#define RtlIpv6AddressToStringEx __MINGW_NAME_AW(RtlIpv6AddressToStringEx)
94
 
95
LPWSTR NTAPI RtlIpv6AddressToStringA(
96
  const IN6_ADDR *Addr,
97
  LPSTR S
98
);
99
 
100
LPSTR NTAPI RtlIpv6AddressToStringW(
101
  const IN6_ADDR *Addr,
102
  LPWSTR S
103
);
104
 
105
LONG NTAPI RtlIpv6AddressToStringExA(
106
  const IN6_ADDR *Address,
107
  ULONG ScopeId,
108
  USHORT Port,
109
  LPSTR AddressString,
110
  PULONG AddressStringLength
111
);
112
 
113
LONG NTAPI RtlIpv6AddressToStringExW(
114
  const IN6_ADDR *Address,
115
  ULONG ScopeId,
116
  USHORT Port,
117
  LPWSTR AddressString,
118
  PULONG AddressStringLength
119
);
120
 
121
#define RtlIpv4AddressToString __MINGW_NAME_AW(RtlIpv4AddressToString)
122
LPTSTR NTAPI RtlIpv4AddressToStringA(
123
  const IN_ADDR *Addr,
124
  LPSTR S
125
);
126
 
127
LPTSTR NTAPI RtlIpv4AddressToStringW(
128
  const IN_ADDR *Addr,
129
  LPWSTR S
130
);
131
 
132
#define RtlIpv4AddressToStringEx __MINGW_NAME_AW(RtlIpv4AddressToStringEx)
133
LONG NTAPI RtlIpv4AddressToStringExA(
134
  const IN_ADDR *Address,
135
  USHORT Port,
136
  LPSTR AddressString,
137
  PULONG AddressStringLength
138
);
139
 
140
LONG NTAPI RtlIpv4AddressToStringExW(
141
  const IN_ADDR *Address,
142
  USHORT Port,
143
  LPWSTR AddressString,
144
  PULONG AddressStringLength
145
);
146
 
147
#define RtlIpv4StringToAddress __MINGW_NAME_AW(RtlIpv4StringToAddress)
148
LONG NTAPI RtlIpv4StringToAddressA(
149
  PCSTR S,
150
  BOOLEAN Strict,
151
  LPSTR *Terminator,
152
  IN_ADDR *Addr
153
);
154
 
155
LONG NTAPI RtlIpv4StringToAddressW(
156
  PCWSTR S,
157
  BOOLEAN Strict,
158
  LPWSTR *Terminator,
159
  IN_ADDR *Addr
160
);
161
 
162
#define RtlIpv4StringToAddressEx __MINGW_NAME_AW(RtlIpv4StringToAddressEx)
163
LONG NTAPI RtlIpv4StringToAddressExA(
164
  PCSTR AddressString,
165
  BOOLEAN Strict,
166
  IN_ADDR *Address,
167
  PUSHORT Port
168
);
169
 
170
LONG NTAPI RtlIpv4StringToAddressExW(
171
  PCWSTR AddressString,
172
  BOOLEAN Strict,
173
  IN_ADDR *Address,
174
  PUSHORT Port
175
);
176
 
177
#define RtlIpv6StringToAddressEx __MINGW_NAME_AW(RtlIpv6StringToAddressEx)
178
LONG NTAPI RtlIpv6StringToAddressExA(
179
  PCSTR AddressString,
180
  IN6_ADDR *Address,
181
  PULONG ScopeId,
182
  PUSHORT Port
183
);
184
 
185
LONG NTAPI RtlIpv6StringToAddressExW(
186
  PCSTR AddressString,
187
  IN6_ADDR *Address,
188
  PULONG ScopeId,
189
  PUSHORT Port
190
);
191
 
192
#endif /*(_WIN32_WINNT >= 0x0502)*/
193
 
194
#endif /* _MSTCPIP_ */
195