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