Use free Windows DDK and compile with latest MinGW releases.
[reactos.git] / reactos / lib / msafd / include / msafd.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Ancillary Function Driver DLL
4 * FILE: include/msafd.h
5 * PURPOSE: Ancillary Function Driver DLL header
6 */
7 #ifndef __MSAFD_H
8 #define __MSAFD_H
9
10 #include <windows.h>
11 #include <ws2spi.h>
12 #define NTOS_USER_MODE
13 #include <ntos.h>
14 #include <ddk/tdi.h>
15 #include <wsahelp.h>
16 #include <winsock2.h>
17 #include <afd/shared.h>
18 #include <debug.h>
19
20 extern HANDLE GlobalHeap;
21 extern WSPUPCALLTABLE Upcalls;
22 extern LPWPUCOMPLETEOVERLAPPEDREQUEST lpWPUCompleteOverlappedRequest;
23
24 SOCKET
25 WSPAPI
26 WSPAccept(
27 IN SOCKET s,
28 OUT LPSOCKADDR addr,
29 IN OUT LPINT addrlen,
30 IN LPCONDITIONPROC lpfnCondition,
31 IN DWORD dwCallbackData,
32 OUT LPINT lpErrno);
33
34 INT
35 WSPAPI
36 WSPAddressToString(
37 IN LPSOCKADDR lpsaAddress,
38 IN DWORD dwAddressLength,
39 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
40 OUT LPWSTR lpszAddressString,
41 IN OUT LPDWORD lpdwAddressStringLength,
42 OUT LPINT lpErrno);
43
44 INT
45 WSPAPI
46 WSPAsyncSelect(
47 IN SOCKET s,
48 IN HWND hWnd,
49 IN UINT wMsg,
50 IN LONG lEvent,
51 OUT LPINT lpErrno);
52
53 INT
54 WSPAPI WSPBind(
55 IN SOCKET s,
56 IN CONST LPSOCKADDR name,
57 IN INT namelen,
58 OUT LPINT lpErrno);
59
60 INT
61 WSPAPI
62 WSPCancelBlockingCall(
63 OUT LPINT lpErrno);
64
65 INT
66 WSPAPI
67 WSPCleanup(
68 OUT LPINT lpErrno);
69
70 INT
71 WSPAPI
72 WSPCloseSocket(
73 IN SOCKET s,
74 OUT LPINT lpErrno);
75
76 INT
77 WSPAPI
78 WSPConnect(
79 IN SOCKET s,
80 IN CONST LPSOCKADDR name,
81 IN INT namelen,
82 IN LPWSABUF lpCallerData,
83 OUT LPWSABUF lpCalleeData,
84 IN LPQOS lpSQOS,
85 IN LPQOS lpGQOS,
86 OUT LPINT lpErrno);
87
88 INT
89 WSPAPI
90 WSPDuplicateSocket(
91 IN SOCKET s,
92 IN DWORD dwProcessId,
93 OUT LPWSAPROTOCOL_INFOW lpProtocolInfo,
94 OUT LPINT lpErrno);
95
96 INT
97 WSPAPI
98 WSPEnumNetworkEvents(
99 IN SOCKET s,
100 IN WSAEVENT hEventObject,
101 OUT LPWSANETWORKEVENTS lpNetworkEvents,
102 OUT LPINT lpErrno);
103
104 INT
105 WSPAPI
106 WSPEventSelect(
107 IN SOCKET s,
108 IN WSAEVENT hEventObject,
109 IN LONG lNetworkEvents,
110 OUT LPINT lpErrno);
111
112 BOOL
113 WSPAPI
114 WSPGetOverlappedResult(
115 IN SOCKET s,
116 IN LPWSAOVERLAPPED lpOverlapped,
117 OUT LPDWORD lpcbTransfer,
118 IN BOOL fWait,
119 OUT LPDWORD lpdwFlags,
120 OUT LPINT lpErrno);
121
122 INT
123 WSPAPI
124 WSPGetPeerName(
125 IN SOCKET s,
126 OUT LPSOCKADDR name,
127 IN OUT LPINT namelen,
128 OUT LPINT lpErrno);
129
130 BOOL
131 WSPAPI
132 WSPGetQOSByName(
133 IN SOCKET s,
134 IN OUT LPWSABUF lpQOSName,
135 OUT LPQOS lpQOS,
136 OUT LPINT lpErrno);
137
138 INT
139 WSPAPI
140 WSPGetSockName(
141 IN SOCKET s,
142 OUT LPSOCKADDR name,
143 IN OUT LPINT namelen,
144 OUT LPINT lpErrno);
145
146 INT
147 WSPAPI
148 WSPGetSockOpt(
149 IN SOCKET s,
150 IN INT level,
151 IN INT optname,
152 OUT CHAR FAR* optval,
153 IN OUT LPINT optlen,
154 OUT LPINT lpErrno);
155
156 INT
157 WSPAPI
158 WSPIoctl(
159 IN SOCKET s,
160 IN DWORD dwIoControlCode,
161 IN LPVOID lpvInBuffer,
162 IN DWORD cbInBuffer,
163 OUT LPVOID lpvOutBuffer,
164 IN DWORD cbOutBuffer,
165 OUT LPDWORD lpcbBytesReturned,
166 IN LPWSAOVERLAPPED lpOverlapped,
167 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
168 IN LPWSATHREADID lpThreadId,
169 OUT LPINT lpErrno);
170
171 SOCKET
172 WSPAPI
173 WSPJoinLeaf(
174 IN SOCKET s,
175 IN CONST LPSOCKADDR name,
176 IN INT namelen,
177 IN LPWSABUF lpCallerData,
178 OUT LPWSABUF lpCalleeData,
179 IN LPQOS lpSQOS,
180 IN LPQOS lpGQOS,
181 IN DWORD dwFlags,
182 OUT LPINT lpErrno);
183
184 INT
185 WSPAPI
186 WSPListen(
187 IN SOCKET s,
188 IN INT backlog,
189 OUT LPINT lpErrno);
190
191 INT
192 WSPAPI
193 WSPRecv(
194 IN SOCKET s,
195 IN OUT LPWSABUF lpBuffers,
196 IN DWORD dwBufferCount,
197 OUT LPDWORD lpNumberOfBytesRecvd,
198 IN OUT LPDWORD lpFlags,
199 IN LPWSAOVERLAPPED lpOverlapped,
200 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
201 IN LPWSATHREADID lpThreadId,
202 OUT LPINT lpErrno);
203
204 INT
205 WSPAPI
206 WSPRecvDisconnect(
207 IN SOCKET s,
208 OUT LPWSABUF lpInboundDisconnectData,
209 OUT LPINT lpErrno);
210
211 INT
212 WSPAPI
213 WSPRecvFrom(
214 IN SOCKET s,
215 IN OUT LPWSABUF lpBuffers,
216 IN DWORD dwBufferCount,
217 OUT LPDWORD lpNumberOfBytesRecvd,
218 IN OUT LPDWORD lpFlags,
219 OUT LPSOCKADDR lpFrom,
220 IN OUT LPINT lpFromlen,
221 IN LPWSAOVERLAPPED lpOverlapped,
222 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
223 IN LPWSATHREADID lpThreadId,
224 OUT LPINT lpErrno);
225
226 INT
227 WSPAPI
228 WSPSelect(
229 IN INT nfds,
230 IN OUT LPFD_SET readfds,
231 IN OUT LPFD_SET writefds,
232 IN OUT LPFD_SET exceptfds,
233 IN CONST LPTIMEVAL timeout,
234 OUT LPINT lpErrno);
235
236 INT
237 WSPAPI
238 WSPSend(
239 IN SOCKET s,
240 IN LPWSABUF lpBuffers,
241 IN DWORD dwBufferCount,
242 OUT LPDWORD lpNumberOfBytesSent,
243 IN DWORD dwFlags,
244 IN LPWSAOVERLAPPED lpOverlapped,
245 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
246 IN LPWSATHREADID lpThreadId,
247 OUT LPINT lpErrno);
248
249 INT
250 WSPAPI
251 WSPSendDisconnect(
252 IN SOCKET s,
253 IN LPWSABUF lpOutboundDisconnectData,
254 OUT LPINT lpErrno);
255
256 INT
257 WSPAPI
258 WSPSendTo(
259 IN SOCKET s,
260 IN LPWSABUF lpBuffers,
261 IN DWORD dwBufferCount,
262 OUT LPDWORD lpNumberOfBytesSent,
263 IN DWORD dwFlags,
264 IN CONST LPSOCKADDR lpTo,
265 IN INT iTolen,
266 IN LPWSAOVERLAPPED lpOverlapped,
267 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
268 IN LPWSATHREADID lpThreadId,
269 OUT LPINT lpErrno);
270
271 INT
272 WSPAPI
273 WSPSetSockOpt(
274 IN SOCKET s,
275 IN INT level,
276 IN INT optname,
277 IN CONST CHAR FAR* optval,
278 IN INT optlen,
279 OUT LPINT lpErrno);
280
281 INT
282 WSPAPI
283 WSPShutdown(
284 IN SOCKET s,
285 IN INT how,
286 OUT LPINT lpErrno);
287
288 SOCKET
289 WSPAPI
290 WSPSocket(
291 IN INT af,
292 IN INT type,
293 IN INT protocol,
294 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
295 IN GROUP g,
296 IN DWORD dwFlags,
297 OUT LPINT lpErrno);
298
299 INT
300 WSPAPI
301 WSPStringToAddress(
302 IN LPWSTR AddressString,
303 IN INT AddressFamily,
304 IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
305 OUT LPSOCKADDR lpAddress,
306 IN OUT LPINT lpAddressLength,
307 OUT LPINT lpErrno);
308
309 #endif /* __MSAFD_H */
310
311 /* EOF */