ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/ws2spi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 20541 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef _WINSOCK2SPI_
7 #define _WINSOCK2SPI_
8
9 #ifndef _WIN64
10 #include <pshpack4.h>
11 #endif
12
13 #include <winsock2.h>
14
15 #define WSPDESCRIPTION_LEN 255
16
17 #define WSS_OPERATION_IN_PROGRESS __MSABI_LONG(0x00000103)
18
19 typedef struct WSPData {
20 WORD wVersion;
21 WORD wHighVersion;
22 WCHAR szDescription[WSPDESCRIPTION_LEN+1];
23 } WSPDATA,*LPWSPDATA;
24
25 typedef struct _WSATHREADID {
26 HANDLE ThreadHandle;
27 DWORD_PTR Reserved;
28 } WSATHREADID,*LPWSATHREADID;
29
30 #define WSPAPI WSAAPI
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 typedef WINBOOL (CALLBACK *LPBLOCKINGCALLBACK)(DWORD_PTR dwContext);
37 typedef VOID (CALLBACK *LPWSAUSERAPC)(DWORD_PTR dwContext);
38 typedef SOCKET (WSPAPI *LPWSPACCEPT)(SOCKET s,struct sockaddr *addr,LPINT addrlen,LPCONDITIONPROC lpfnCondition,DWORD_PTR dwCallbackData,LPINT lpErrno);
39 typedef INT (WSPAPI *LPWSPADDRESSTOSTRING)(LPSOCKADDR lpsaAddress,DWORD dwAddressLength,LPWSAPROTOCOL_INFOW lpProtocolInfo,LPWSTR lpszAddressString,LPDWORD lpdwAddressStringLength,LPINT lpErrno);
40 typedef int (WSPAPI *LPWSPASYNCSELECT)(SOCKET s,HWND hWnd,unsigned int wMsg,__LONG32 lEvent,LPINT lpErrno);
41 typedef int (WSPAPI *LPWSPBIND)(SOCKET s,const struct sockaddr *name,int namelen,LPINT lpErrno);
42 typedef int (WSPAPI *LPWSPCANCELBLOCKINGCALL)(LPINT lpErrno);
43 typedef int (WSPAPI *LPWSPCLEANUP)(LPINT lpErrno);
44 typedef int (WSPAPI *LPWSPCLOSESOCKET)(SOCKET s,LPINT lpErrno);
45 typedef int (WSPAPI *LPWSPCONNECT)(SOCKET s,const struct sockaddr *name,int namelen,LPWSABUF lpCallerData,LPWSABUF lpCalleeData,LPQOS lpSQOS,LPQOS lpGQOS,LPINT lpErrno);
46 typedef int (WSPAPI *LPWSPDUPLICATESOCKET)(SOCKET s,DWORD dwProcessId,LPWSAPROTOCOL_INFOW lpProtocolInfo,LPINT lpErrno);
47 typedef int (WSPAPI *LPWSPENUMNETWORKEVENTS)(SOCKET s,WSAEVENT hEventObject,LPWSANETWORKEVENTS lpNetworkEvents,LPINT lpErrno);
48 typedef int (WSPAPI *LPWSPEVENTSELECT)(SOCKET s,WSAEVENT hEventObject,__LONG32 lNetworkEvents,LPINT lpErrno);
49 typedef WINBOOL (WSPAPI *LPWSPGETOVERLAPPEDRESULT)(SOCKET s,LPWSAOVERLAPPED lpOverlapped,LPDWORD lpcbTransfer,WINBOOL fWait,LPDWORD lpdwFlags,LPINT lpErrno);
50 typedef int (WSPAPI *LPWSPGETPEERNAME)(SOCKET s,struct sockaddr *name,LPINT namelen,LPINT lpErrno);
51 typedef int (WSPAPI *LPWSPGETSOCKNAME)(SOCKET s,struct sockaddr *name,LPINT namelen,LPINT lpErrno);
52 typedef int (WSPAPI *LPWSPGETSOCKOPT)(SOCKET s,int level,int optname,char *optval,LPINT optlen,LPINT lpErrno);
53 typedef WINBOOL (WSPAPI *LPWSPGETQOSBYNAME)(SOCKET s,LPWSABUF lpQOSName,LPQOS lpQOS,LPINT lpErrno);
54 typedef int (WSPAPI *LPWSPIOCTL)(SOCKET s,DWORD dwIoControlCode,LPVOID lpvInBuffer,DWORD cbInBuffer,LPVOID lpvOutBuffer,DWORD cbOutBuffer,LPDWORD lpcbBytesReturned,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,LPWSATHREADID lpThreadId,LPINT lpErrno);
55 typedef SOCKET (WSPAPI *LPWSPJOINLEAF)(SOCKET s,const struct sockaddr *name,int namelen,LPWSABUF lpCallerData,LPWSABUF lpCalleeData,LPQOS lpSQOS,LPQOS lpGQOS,DWORD dwFlags,LPINT lpErrno);
56 typedef int (WSPAPI *LPWSPLISTEN)(SOCKET s,int backlog,LPINT lpErrno);
57 typedef int (WSPAPI *LPWSPRECV)(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,LPWSATHREADID lpThreadId,LPINT lpErrno);
58 typedef int (WSPAPI *LPWSPRECVDISCONNECT)(SOCKET s,LPWSABUF lpInboundDisconnectData,LPINT lpErrno);
59 typedef int (WSPAPI *LPWSPRECVFROM)(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,struct sockaddr *lpFrom,LPINT lpFromlen,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,LPWSATHREADID lpThreadId,LPINT lpErrno);
60 typedef int (WSPAPI *LPWSPSELECT)(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,const PTIMEVAL timeout,LPINT lpErrno);
61 typedef int (WSPAPI *LPWSPSEND)(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,LPWSATHREADID lpThreadId,LPINT lpErrno);
62 typedef int (WSPAPI *LPWSPSENDDISCONNECT)(SOCKET s,LPWSABUF lpOutboundDisconnectData,LPINT lpErrno);
63 typedef int (WSPAPI *LPWSPSENDTO)(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,const struct sockaddr *lpTo,int iTolen,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,LPWSATHREADID lpThreadId,LPINT lpErrno);
64 typedef int (WSPAPI *LPWSPSETSOCKOPT)(SOCKET s,int level,int optname,const char *optval,int optlen,LPINT lpErrno);
65 typedef int (WSPAPI *LPWSPSHUTDOWN)(SOCKET s,int how,LPINT lpErrno);
66 typedef SOCKET (WSPAPI *LPWSPSOCKET)(int af,int type,int protocol,LPWSAPROTOCOL_INFOW lpProtocolInfo,GROUP g,DWORD dwFlags,LPINT lpErrno);
67 typedef INT (WSPAPI *LPWSPSTRINGTOADDRESS)(LPWSTR AddressString,INT AddressFamily,LPWSAPROTOCOL_INFOW lpProtocolInfo,LPSOCKADDR lpAddress,LPINT lpAddressLength,LPINT lpErrno);
68
69 typedef struct _WSPPROC_TABLE {
70
71 LPWSPACCEPT lpWSPAccept;
72 LPWSPADDRESSTOSTRING lpWSPAddressToString;
73 LPWSPASYNCSELECT lpWSPAsyncSelect;
74 LPWSPBIND lpWSPBind;
75 LPWSPCANCELBLOCKINGCALL lpWSPCancelBlockingCall;
76 LPWSPCLEANUP lpWSPCleanup;
77 LPWSPCLOSESOCKET lpWSPCloseSocket;
78 LPWSPCONNECT lpWSPConnect;
79 LPWSPDUPLICATESOCKET lpWSPDuplicateSocket;
80 LPWSPENUMNETWORKEVENTS lpWSPEnumNetworkEvents;
81 LPWSPEVENTSELECT lpWSPEventSelect;
82 LPWSPGETOVERLAPPEDRESULT lpWSPGetOverlappedResult;
83 LPWSPGETPEERNAME lpWSPGetPeerName;
84 LPWSPGETSOCKNAME lpWSPGetSockName;
85 LPWSPGETSOCKOPT lpWSPGetSockOpt;
86 LPWSPGETQOSBYNAME lpWSPGetQOSByName;
87 LPWSPIOCTL lpWSPIoctl;
88 LPWSPJOINLEAF lpWSPJoinLeaf;
89 LPWSPLISTEN lpWSPListen;
90 LPWSPRECV lpWSPRecv;
91 LPWSPRECVDISCONNECT lpWSPRecvDisconnect;
92 LPWSPRECVFROM lpWSPRecvFrom;
93 LPWSPSELECT lpWSPSelect;
94 LPWSPSEND lpWSPSend;
95 LPWSPSENDDISCONNECT lpWSPSendDisconnect;
96 LPWSPSENDTO lpWSPSendTo;
97 LPWSPSETSOCKOPT lpWSPSetSockOpt;
98 LPWSPSHUTDOWN lpWSPShutdown;
99 LPWSPSOCKET lpWSPSocket;
100 LPWSPSTRINGTOADDRESS lpWSPStringToAddress;
101 } WSPPROC_TABLE,*LPWSPPROC_TABLE;
102
103 typedef WINBOOL (WSPAPI *LPWPUCLOSEEVENT)(WSAEVENT hEvent,LPINT lpErrno);
104 typedef int (WSPAPI *LPWPUCLOSESOCKETHANDLE)(SOCKET s,LPINT lpErrno);
105 typedef WSAEVENT (WSPAPI *LPWPUCREATEEVENT)(LPINT lpErrno);
106 typedef SOCKET (WSPAPI *LPWPUCREATESOCKETHANDLE)(DWORD dwCatalogEntryId,DWORD_PTR dwContext,LPINT lpErrno);
107 typedef int (WSPAPI *LPWPUFDISSET)(SOCKET s,fd_set *fdset);
108 typedef int (WSPAPI *LPWPUGETPROVIDERPATH)(LPGUID lpProviderId,WCHAR *lpszProviderDllPath,LPINT lpProviderDllPathLen,LPINT lpErrno);
109 typedef SOCKET (WSPAPI *LPWPUMODIFYIFSHANDLE)(DWORD dwCatalogEntryId,SOCKET ProposedHandle,LPINT lpErrno);
110 typedef WINBOOL (WSPAPI *LPWPUPOSTMESSAGE)(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
111 typedef int (WSPAPI *LPWPUQUERYBLOCKINGCALLBACK)(DWORD dwCatalogEntryId,LPBLOCKINGCALLBACK *lplpfnCallback,PDWORD_PTR lpdwContext,LPINT lpErrno);
112 typedef int (WSPAPI *LPWPUQUERYSOCKETHANDLECONTEXT)(SOCKET s,PDWORD_PTR lpContext,LPINT lpErrno);
113 typedef int (WSPAPI *LPWPUQUEUEAPC)(LPWSATHREADID lpThreadId,LPWSAUSERAPC lpfnUserApc,DWORD_PTR dwContext,LPINT lpErrno);
114 typedef WINBOOL (WSPAPI *LPWPURESETEVENT)(WSAEVENT hEvent,LPINT lpErrno);
115 typedef WINBOOL (WSPAPI *LPWPUSETEVENT)(WSAEVENT hEvent,LPINT lpErrno);
116 typedef int (WSPAPI *LPWPUOPENCURRENTTHREAD)(LPWSATHREADID lpThreadId,LPINT lpErrno);
117 typedef int (WSPAPI *LPWPUCLOSETHREAD)(LPWSATHREADID lpThreadId,LPINT lpErrno);
118 typedef int (WSPAPI *LPWPUCOMPLETEOVERLAPPEDREQUEST)(SOCKET s,LPWSAOVERLAPPED lpOverlapped,DWORD dwError,DWORD cbTransferred,LPINT lpErrno);
119
120 typedef struct _WSPUPCALLTABLE {
121 LPWPUCLOSEEVENT lpWPUCloseEvent;
122 LPWPUCLOSESOCKETHANDLE lpWPUCloseSocketHandle;
123 LPWPUCREATEEVENT lpWPUCreateEvent;
124 LPWPUCREATESOCKETHANDLE lpWPUCreateSocketHandle;
125 LPWPUFDISSET lpWPUFDIsSet;
126 LPWPUGETPROVIDERPATH lpWPUGetProviderPath;
127 LPWPUMODIFYIFSHANDLE lpWPUModifyIFSHandle;
128 LPWPUPOSTMESSAGE lpWPUPostMessage;
129 LPWPUQUERYBLOCKINGCALLBACK lpWPUQueryBlockingCallback;
130 LPWPUQUERYSOCKETHANDLECONTEXT lpWPUQuerySocketHandleContext;
131 LPWPUQUEUEAPC lpWPUQueueApc;
132 LPWPURESETEVENT lpWPUResetEvent;
133 LPWPUSETEVENT lpWPUSetEvent;
134 LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread;
135 LPWPUCLOSETHREAD lpWPUCloseThread;
136 } WSPUPCALLTABLE,*LPWSPUPCALLTABLE;
137
138 typedef int (WSPAPI *LPWSPSTARTUP)(WORD wVersionRequested,LPWSPDATA lpWSPData,LPWSAPROTOCOL_INFOW lpProtocolInfo,WSPUPCALLTABLE UpcallTable,LPWSPPROC_TABLE lpProcTable);
139 typedef int (WSPAPI *LPWSCENUMPROTOCOLS)(LPINT lpiProtocols,LPWSAPROTOCOL_INFOW lpProtocolBuffer,LPDWORD lpdwBufferLength,LPINT lpErrno);
140 typedef int (WSPAPI *LPWSCDEINSTALLPROVIDER)(LPGUID lpProviderId,LPINT lpErrno);
141 typedef int (WSPAPI *LPWSCINSTALLPROVIDER)(LPGUID lpProviderId,const WCHAR *lpszProviderDllPath,const LPWSAPROTOCOL_INFOW lpProtocolInfoList,DWORD dwNumberOfEntries,LPINT lpErrno);
142 typedef int (WSPAPI *LPWSCGETPROVIDERPATH)(LPGUID lpProviderId,WCHAR *lpszProviderDllPath,LPINT lpProviderDllPathLen,LPINT lpErrno);
143 typedef int (WSPAPI *LPWSCUPDATEPROVIDER)(LPGUID lpProviderId,const WCHAR *lpszProviderDllPath,const LPWSAPROTOCOL_INFOW lpProtocolInfoList,DWORD dwNumberOfEntries,LPINT lpErrno);
144 typedef int (WSPAPI *LPWSCINSTALLQOSTEMPLATE)(const LPGUID Guid,LPWSABUF QosName,LPQOS Qos);
145 typedef int (WSPAPI *LPWSCREMOVEQOSTEMPLATE)(const LPGUID Guid,LPWSABUF QosName);
146
147 int WSPAPI WSPStartup(WORD wVersionRequested,LPWSPDATA lpWSPData,LPWSAPROTOCOL_INFOW lpProtocolInfo,WSPUPCALLTABLE UpcallTable,LPWSPPROC_TABLE lpProcTable);
148 int WSPAPI WSCEnumProtocols(LPINT lpiProtocols,LPWSAPROTOCOL_INFOW lpProtocolBuffer,LPDWORD lpdwBufferLength,LPINT lpErrno);
149 int WSPAPI WSCDeinstallProvider(LPGUID lpProviderId,LPINT lpErrno);
150 int WSPAPI WSCInstallProvider(LPGUID lpProviderId,const WCHAR *lpszProviderDllPath,const LPWSAPROTOCOL_INFOW lpProtocolInfoList,DWORD dwNumberOfEntries,LPINT lpErrno);
151 int WSPAPI WSCGetProviderPath(LPGUID lpProviderId,WCHAR *lpszProviderDllPath,LPINT lpProviderDllPathLen,LPINT lpErrno);
152 int WSPAPI WSCUpdateProvider(LPGUID lpProviderId,const WCHAR *lpszProviderDllPath,const LPWSAPROTOCOL_INFOW lpProtocolInfoList,DWORD dwNumberOfEntries,LPINT lpErrno);
153 int WSPAPI WSCInstallQOSTemplate (const LPGUID Guid,LPWSABUF QosName,LPQOS Qos);
154 int WSPAPI WSCRemoveQOSTemplate (const LPGUID Guid,LPWSABUF QosName);
155
156 #ifdef _WIN64
157 int WSPAPI WSCEnumProtocols32(LPINT lpiProtocols,LPWSAPROTOCOL_INFOW lpProtocolBuffer,LPDWORD lpdwBufferLength,LPINT lpErrno);
158 int WSPAPI WSCDeinstallProvider32(LPGUID lpProviderId,LPINT lpErrno);
159 int WSPAPI WSCInstallProvider64_32(LPGUID lpProviderId,const WCHAR *lpszProviderDllPath,const LPWSAPROTOCOL_INFOW lpProtocolInfoList,DWORD dwNumberOfEntries,LPINT lpErrno);
160 int WSPAPI WSCGetProviderPath32(LPGUID lpProviderId,WCHAR *lpszProviderDllPath,LPINT lpProviderDllPathLen,LPINT lpErrno);
161 int WSPAPI WSCUpdateProvider32(LPGUID lpProviderId,const WCHAR *lpszProviderDllPath,const LPWSAPROTOCOL_INFOW lpProtocolInfoList,DWORD dwNumberOfEntries,LPINT lpErrno);
162 #endif
163
164 WINBOOL WSPAPI WPUCloseEvent(WSAEVENT hEvent,LPINT lpErrno);
165 int WSPAPI WPUCloseSocketHandle(SOCKET s,LPINT lpErrno);
166 WSAEVENT WSPAPI WPUCreateEvent(LPINT lpErrno);
167 SOCKET WSPAPI WPUCreateSocketHandle(DWORD dwCatalogEntryId,DWORD_PTR dwContext,LPINT lpErrno);
168 int WSPAPI WPUFDIsSet(SOCKET s,fd_set *fdset);
169 int WSPAPI WPUGetProviderPath(LPGUID lpProviderId,WCHAR *lpszProviderDllPath,LPINT lpProviderDllPathLen,LPINT lpErrno);
170 SOCKET WSPAPI WPUModifyIFSHandle(DWORD dwCatalogEntryId,SOCKET ProposedHandle,LPINT lpErrno);
171 WINBOOL WSPAPI WPUPostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
172 int WSPAPI WPUQueryBlockingCallback(DWORD dwCatalogEntryId,LPBLOCKINGCALLBACK *lplpfnCallback,PDWORD_PTR lpdwContext,LPINT lpErrno);
173 int WSPAPI WPUQuerySocketHandleContext(SOCKET s,PDWORD_PTR lpContext,LPINT lpErrno);
174 int WSPAPI WPUQueueApc(LPWSATHREADID lpThreadId,LPWSAUSERAPC lpfnUserApc,DWORD_PTR dwContext,LPINT lpErrno);
175 WINBOOL WSPAPI WPUResetEvent(WSAEVENT hEvent,LPINT lpErrno);
176 WINBOOL WSPAPI WPUSetEvent(WSAEVENT hEvent,LPINT lpErrno);
177 int WSPAPI WPUCompleteOverlappedRequest (SOCKET s,LPWSAOVERLAPPED lpOverlapped,DWORD dwError,DWORD cbTransferred,LPINT lpErrno);
178 int WSPAPI WPUOpenCurrentThread(LPWSATHREADID lpThreadId,LPINT lpErrno);
179 int WSPAPI WPUCloseThread(LPWSATHREADID lpThreadId,LPINT lpErrno);
180 #define WSCEnumNameSpaceProviders WSAEnumNameSpaceProvidersW
181 #define LPFN_WSCENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW
182
183 #ifdef _WIN64
184 INT WSAAPI WSCEnumNameSpaceProviders32(LPDWORD lpdwBufferLength,LPWSANAMESPACE_INFOW lpnspBuffer);
185 #endif
186
187 typedef INT (WSPAPI *LPWSCINSTALLNAMESPACE)(LPWSTR lpszIdentifier,LPWSTR lpszPathName,DWORD dwNameSpace,DWORD dwVersion,LPGUID lpProviderId);
188 typedef INT (WSPAPI *LPWSCUNINSTALLNAMESPACE)(LPGUID lpProviderId);
189 typedef INT (WSPAPI *LPWSCENABLENSPROVIDER)(LPGUID lpProviderId,WINBOOL fEnable);
190
191 INT WSPAPI WSCInstallNameSpace (LPWSTR lpszIdentifier,LPWSTR lpszPathName,DWORD dwNameSpace,DWORD dwVersion,LPGUID lpProviderId);
192 INT WSPAPI WSCUnInstallNameSpace (LPGUID lpProviderId);
193 INT WSPAPI WSCEnableNSProvider (LPGUID lpProviderId,WINBOOL fEnable);
194
195 #ifdef _WIN64
196 INT WSPAPI WSCInstallNameSpace32 (LPWSTR lpszIdentifier,LPWSTR lpszPathName,DWORD dwNameSpace,DWORD dwVersion,LPGUID lpProviderId);
197 INT WSPAPI WSCUnInstallNameSpace32 (LPGUID lpProviderId);
198 INT WSPAPI WSCEnableNSProvider32 (LPGUID lpProviderId,WINBOOL fEnable);
199 #endif
200
201 typedef INT (WSAAPI *LPNSPCLEANUP)(LPGUID lpProviderId);
202 typedef INT (WSAAPI *LPNSPLOOKUPSERVICEBEGIN)(LPGUID lpProviderId,LPWSAQUERYSETW lpqsRestrictions,LPWSASERVICECLASSINFOW lpServiceClassInfo,DWORD dwControlFlags,LPHANDLE lphLookup);
203 typedef INT (WSAAPI *LPNSPLOOKUPSERVICENEXT)(HANDLE hLookup,DWORD dwControlFlags,LPDWORD lpdwBufferLength,LPWSAQUERYSETW lpqsResults);
204 typedef INT (WSAAPI *LPNSPIOCTL)(HANDLE hLookup,DWORD dwControlCode,LPVOID lpvInBuffer,DWORD cbInBuffer,LPVOID lpvOutBuffer,DWORD cbOutBuffer,LPDWORD lpcbBytesReturned,LPWSACOMPLETION lpCompletion,LPWSATHREADID lpThreadId);
205 typedef INT (WSAAPI *LPNSPLOOKUPSERVICEEND)(HANDLE hLookup);
206 typedef INT (WSAAPI *LPNSPSETSERVICE)(LPGUID lpProviderId,LPWSASERVICECLASSINFOW lpServiceClassInfo,LPWSAQUERYSETW lpqsRegInfo,WSAESETSERVICEOP essOperation,DWORD dwControlFlags);
207 typedef INT (WSAAPI *LPNSPINSTALLSERVICECLASS)(LPGUID lpProviderId,LPWSASERVICECLASSINFOW lpServiceClassInfo);
208 typedef INT (WSAAPI *LPNSPREMOVESERVICECLASS)(LPGUID lpProviderId,LPGUID lpServiceClassId);
209 typedef INT (WSAAPI *LPNSPGETSERVICECLASSINFO)(LPGUID lpProviderId,LPDWORD lpdwBufSize,LPWSASERVICECLASSINFOW lpServiceClassInfo);
210
211 typedef struct _NSP_ROUTINE {
212 DWORD cbSize;
213 DWORD dwMajorVersion;
214 DWORD dwMinorVersion;
215 LPNSPCLEANUP NSPCleanup;
216 LPNSPLOOKUPSERVICEBEGIN NSPLookupServiceBegin;
217 LPNSPLOOKUPSERVICENEXT NSPLookupServiceNext;
218 LPNSPLOOKUPSERVICEEND NSPLookupServiceEnd;
219 LPNSPSETSERVICE NSPSetService;
220 LPNSPINSTALLSERVICECLASS NSPInstallServiceClass;
221 LPNSPREMOVESERVICECLASS NSPRemoveServiceClass;
222 LPNSPGETSERVICECLASSINFO NSPGetServiceClassInfo;
223 LPNSPIOCTL NSPIoctl;
224 } NSP_ROUTINE,*LPNSP_ROUTINE;
225
226 typedef INT (WSAAPI *LPNSPSTARTUP)(LPGUID lpProviderId,LPNSP_ROUTINE lpnspRoutines);
227
228 INT WSAAPI NSPStartup(LPGUID lpProviderId,LPNSP_ROUTINE lpnspRoutines);
229
230 #if (_WIN32_WINNT >= 0x0600)
231
232 typedef int (WSAAPI *LPNSPV2CLEANUP)(
233 LPGUID lpProviderId,
234 LPVOID pvClientSessionArg
235 );
236
237 typedef int (WSAAPI *LPNSPV2CLIENTSESSIONRUNDOWN)(
238 LPGUID lpProviderId,
239 LPVOID pvClientSessionArg
240 );
241
242 typedef int (WSAAPI *LPNSPV2LOOKUPSERVICEBEGIN)(
243 LPGUID lpProviderId,
244 LPWSAQUERYSET2W lpqsRestrictions,
245 DWORD dwControlFlags,
246 LPVOID lpvClientSessionArg,
247 LPHANDLE lphLookup
248 );
249
250 typedef int (WSAAPI *LPNSPV2LOOKUPSERVICEEND)(
251 HANDLE hLookup
252 );
253
254 typedef int (WSAAPI *LPNSPV2LOOKUPSERVICENEXTEX)(
255 HANDLE hAsyncCall,
256 HANDLE hLookup,
257 DWORD dwControlFlags,
258 LPDWORD lpdwBufferLength,
259 LPWSAQUERYSET2W lpqsResults
260 );
261
262 typedef int (WSAAPI *LPNSPV2SETSERVICEEX)(
263 HANDLE hAsyncCall,
264 LPGUID lpProviderId,
265 LPWSAQUERYSET2W lpqsRegInfo,
266 WSAESETSERVICEOP essOperation,
267 DWORD dwControlFlags,
268 LPVOID lpvClientSessionArg
269 );
270
271 typedef int (WSAAPI *LPNSPV2STARTUP)(
272 LPGUID lpProviderId,
273 LPVOID *ppvClientSessionArg
274 );
275
276 typedef struct _NSPV2_ROUTINE {
277 DWORD cbSize;
278 DWORD dwMajorVersion;
279 DWORD dwMinorVersion;
280 LPNSPV2STARTUP NSPv2Startup;
281 LPNSPV2CLEANUP NSPv2Cleanup;
282 LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin;
283 LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx;
284 LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd;
285 LPNSPV2SETSERVICEEX NSPv2SetServiceEx;
286 LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown;
287 } NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPCNSPV2_ROUTINE;
288
289 #define LSP_SYSTEM 0x80000000
290 #define LSP_INSPECTOR 0x00000001
291 #define LSP_REDIRECTOR 0x00000002
292 #define LSP_PROXY 0x00000004
293 #define LSP_FIREWALL 0x00000008
294 #define LSP_INBOUND_MODIFY 0x00000010
295 #define LSP_OUTBOUND_MODIFY 0x00000020
296 #define LSP_CRYPTO_COMPRESS 0x00000040
297 #define LSP_LOCAL_CACHE 0x00000080
298
299 typedef enum _WSC_PROVIDER_INFO_TYPE {
300 ProviderInfoLspCategories = 0,
301 ProviderInfoAudit
302 } WSC_PROVIDER_INFO_TYPE;
303
304 typedef struct _WSC_PROVIDER_AUDIT_INFO {
305 DWORD RecordSize;
306 PVOID Reserved;
307 } WSC_PROVIDER_AUDIT_INFO, *PWSC_PROVIDER_AUDIT_INFO;
308
309 INT WSAAPI WSAAdvertiseProvider(
310 const GUID *puuidProviderId,
311 const LPCNSPV2_ROUTINE *pNSPv2Routine
312 );
313
314 INT WSPAPI WSAProviderCompleteAsyncCall(
315 HANDLE hAsyncCall,
316 INT iRetCode
317 );
318
319 INT WSPAPI WSAUnadvertiseProvider(
320 const GUID *puuidProviderId
321 );
322
323 int WSPAPI WSCGetApplicationCategory(
324 LPCWSTR Path,
325 DWORD PathLength,
326 LPCWSTR Extra,
327 DWORD ExtraLength,
328 DWORD *pPermittedLspCategories,
329 LPINT lpErrno
330 );
331
332 int WSPAPI WSCGetProviderInfo(
333 LPGUID lpProviderId,
334 WSC_PROVIDER_INFO_TYPE InfoType,
335 PBYTE Info,
336 size_t *InfoSize,
337 DWORD Flags,
338 LPINT lpErrno
339 );
340
341 #ifndef _WIN64
342 int WSPAPI WSCInstallProviderAndChains(
343 const LPGUID lpProviderId,
344 const LPWSTR lpszProviderDllPath,
345 const LPWSTR lpszLspName,
346 DWORD dwServiceFlags,
347 const LPWSAPROTOCOL_INFO lpProtocolInfoList,
348 DWORD dwNumberOfEntries,
349 LPDWORD lpdwCatalogEntryId,
350 LPINT lpErrno
351 );
352 #endif /* !_WIN64 */
353
354 int WSPAPI WSCSetApplicationCategory(
355 LPCWSTR Path,
356 DWORD PathLength,
357 LPCWSTR Extra,
358 DWORD ExtraLength,
359 DWORD PermittedLspCategories,
360 DWORD *pPrevPermLspCat,
361 LPINT lpErrno
362 );
363
364 int WSPAPI WSCSetProviderInfo(
365 LPGUID lpProviderId,
366 WSC_PROVIDER_INFO_TYPE InfoType,
367 PBYTE Info,
368 size_t InfoSize,
369 DWORD Flags,
370 LPINT lpErrno
371 );
372
373 int WSAAPI WSCInstallNameSpaceEx(
374 LPWSTR lpszIdentifier,
375 LPWSTR lpszPathName,
376 DWORD dwNameSpace,
377 DWORD dwVersion,
378 LPGUID lpProviderId,
379 LPBLOB lpProviderInfo
380 );
381
382 #define WSCEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW
383 #define LPFN_WSCENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW
384
385 #ifdef _WIN64
386 INT WSPAPI WSCEnumNameSpaceProvidersEx32(
387 LPDWORD lpdwBufferLength,
388 LPWSANAMESPACE_INFOEXW lpnspBuffer
389 );
390
391 int WSPAPI WSCGetProviderInfo32(
392 LPGUID lpProviderId,
393 WSC_PROVIDER_INFO_TYPE InfoType,
394 PBYTE Info,
395 size_t *InfoSize,
396 DWORD Flags,
397 LPINT lpErrno
398 );
399
400 int WSAAPI WSCInstallNameSpaceEx32(
401 LPWSTR lpszIdentifier,
402 LPWSTR lpszPathName,
403 DWORD dwNameSpace,
404 DWORD dwVersion,
405 LPGUID lpProviderId,
406 LPBLOB lpProviderInfo
407 );
408
409 int WSPAPI WSCInstallProviderAndChains64_32(
410 const LPGUID lpProviderId,
411 const LPWSTR lpszProviderDllPath,
412 const LPWSTR lpszProviderDllPath32,
413 const LPWSTR lpszLspName,
414 DWORD dwServiceFlags,
415 const LPWSAPROTOCOL_INFO lpProtocolInfoList,
416 DWORD dwNumberOfEntries,
417 LPDWORD lpdwCatalogEntryId,
418 LPINT lpErrno
419 );
420
421 int WSPAPI WSCSetProviderInfo32(
422 LPGUID lpProviderId,
423 WSC_PROVIDER_INFO_TYPE InfoType,
424 PBYTE Info,
425 size_t InfoSize,
426 DWORD Flags,
427 LPINT lpErrno
428 );
429
430 #endif /* _WIN64*/
431
432 #endif /*(_WIN32_WINNT >= 0x0600)*/
433
434 #ifdef __cplusplus
435 }
436 #endif
437
438 #if !defined(_WIN64)
439 #include <poppack.h>
440 #endif
441 #endif