update for HEAD-2003091401
[reactos.git] / 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 <stdlib.h>
11 #include <wsahelp.h>
12 #include <winsock2.h>
13 #include <ws2spi.h>
14 #include <ddk/ntddk.h>
15 #include <windows.h>
16 #include <net/tdi.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 */