Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenws2spi.h
Go to the documentation of this file.
00001 /* 00002 * ws2spi.h 00003 * 00004 * Winsock 2 Service Provider interface. 00005 * 00006 * 00007 * THIS SOFTWARE IS NOT COPYRIGHTED 00008 * 00009 * This source code is offered for use in the public domain. You may 00010 * use, modify or distribute it freely. 00011 * 00012 * This code is distributed in the hope that it will be useful but 00013 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00014 * DISCLAIMED. This includes but is not limited to warranties of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00016 * 00017 */ 00018 #pragma once 00019 00020 #define _WS2SPI_H 00021 00022 #ifndef _WINSOCK2API_ 00023 #include <winsock2.h> 00024 #endif 00025 00026 #ifdef __cplusplus 00027 extern "C" { 00028 #endif 00029 00030 #if !defined(_WIN64) 00031 #include <pshpack4.h> 00032 #endif 00033 00034 #define WSPDESCRIPTION_LEN 255 00035 00036 #define WSS_OPERATION_IN_PROGRESS 0x00000103L 00037 00038 #define WSPAPI WSAAPI 00039 00040 typedef struct _WSATHREADID { 00041 HANDLE ThreadHandle; 00042 DWORD_PTR Reserved; 00043 } WSATHREADID, FAR *LPWSATHREADID; 00044 00045 typedef struct WSPData { 00046 WORD wVersion; 00047 WORD wHighVersion; 00048 WCHAR szDescription[WSPDESCRIPTION_LEN+1]; 00049 } WSPDATA, FAR *LPWSPDATA; 00050 00051 typedef BOOL 00052 (CALLBACK FAR *LPBLOCKINGCALLBACK)( 00053 DWORD_PTR dwContext); 00054 00055 typedef SOCKET 00056 (WSPAPI *LPWSPACCEPT)( 00057 IN SOCKET s, 00058 OUT struct sockaddr FAR *addr OPTIONAL, 00059 IN OUT LPINT addrlen OPTIONAL, 00060 IN LPCONDITIONPROC lpfnCondition OPTIONAL, 00061 IN DWORD_PTR dwCallbackData OPTIONAL, 00062 OUT LPINT lpErrno); 00063 00064 typedef VOID 00065 (CALLBACK FAR *LPWSAUSERAPC)( 00066 DWORD_PTR dwContext); 00067 00068 typedef INT 00069 (WSPAPI *LPWSPADDRESSTOSTRING)( 00070 IN LPSOCKADDR lpsaAddress, 00071 IN DWORD dwAddressLength, 00072 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL, 00073 OUT LPWSTR lpszAddressString, 00074 IN OUT LPDWORD lpdwAddressStringLength, 00075 OUT LPINT lpErrno); 00076 00077 typedef int 00078 (WSPAPI *LPWSPASYNCSELECT)( 00079 IN SOCKET s, 00080 IN HWND hWnd, 00081 IN unsigned int wMsg, 00082 IN long lEvent, 00083 OUT LPINT lpErrno); 00084 00085 typedef int 00086 (WSPAPI *LPWSPBIND)( 00087 IN SOCKET s, 00088 IN const struct sockaddr FAR *name, 00089 IN int namelen, 00090 OUT LPINT lpErrno); 00091 00092 typedef int 00093 (WSPAPI *LPWSPCANCELBLOCKINGCALL)( 00094 OUT LPINT lpErrno); 00095 00096 typedef int 00097 (WSPAPI *LPWSPCLEANUP)( 00098 OUT LPINT lpErrno); 00099 00100 typedef int 00101 (WSPAPI *LPWSPCLOSESOCKET)( 00102 IN SOCKET s, 00103 OUT LPINT lpErrno); 00104 00105 typedef int 00106 (WSPAPI *LPWSPCONNECT)( 00107 IN SOCKET s, 00108 IN const struct sockaddr FAR *name, 00109 IN int namelen, 00110 IN LPWSABUF lpCallerData OPTIONAL, 00111 OUT LPWSABUF lpCalleeData OPTIONAL, 00112 IN LPQOS lpSQOS OPTIONAL, 00113 IN LPQOS lpGQOS OPTIONAL, 00114 OUT LPINT lpErrno); 00115 00116 typedef int 00117 (WSPAPI *LPWSPDUPLICATESOCKET)( 00118 IN SOCKET s, 00119 IN DWORD dwProcessId, 00120 OUT LPWSAPROTOCOL_INFOW lpProtocolInfo, 00121 OUT LPINT lpErrno); 00122 00123 typedef int 00124 (WSPAPI *LPWSPENUMNETWORKEVENTS)( 00125 IN SOCKET s, 00126 IN WSAEVENT hEventObject, 00127 OUT LPWSANETWORKEVENTS lpNetworkEvents, 00128 OUT LPINT lpErrno); 00129 00130 typedef int 00131 (WSPAPI *LPWSPEVENTSELECT)( 00132 IN SOCKET s, 00133 IN WSAEVENT hEventObject, 00134 IN long lNetworkEvents, 00135 OUT LPINT lpErrno); 00136 00137 typedef BOOL 00138 (WSPAPI *LPWSPGETOVERLAPPEDRESULT)( 00139 IN SOCKET s, 00140 IN LPWSAOVERLAPPED lpOverlapped, 00141 OUT LPDWORD lpcbTransfer, 00142 IN BOOL fWait, 00143 OUT LPDWORD lpdwFlags, 00144 OUT LPINT lpErrno); 00145 00146 typedef int 00147 (WSPAPI *LPWSPGETPEERNAME)( 00148 IN SOCKET s, 00149 OUT struct sockaddr FAR *name, 00150 IN OUT LPINT namelen, 00151 OUT LPINT lpErrno); 00152 00153 typedef int 00154 (WSPAPI *LPWSPGETSOCKNAME)( 00155 IN SOCKET s, 00156 OUT struct sockaddr FAR *name, 00157 IN OUT LPINT namelen, 00158 OUT LPINT lpErrno); 00159 00160 typedef int 00161 (WSPAPI *LPWSPGETSOCKOPT)( 00162 IN SOCKET s, 00163 IN int level, 00164 IN int optname, 00165 OUT char FAR *optval, 00166 IN OUT LPINT optlen, 00167 OUT LPINT lpErrno); 00168 00169 typedef BOOL 00170 (WSPAPI *LPWSPGETQOSBYNAME)( 00171 IN SOCKET s, 00172 IN LPWSABUF lpQOSName, 00173 OUT LPQOS lpQOS, 00174 OUT LPINT lpErrno); 00175 00176 typedef int 00177 (WSPAPI *LPWSPIOCTL)( 00178 IN SOCKET s, 00179 IN DWORD dwIoControlCode, 00180 IN LPVOID lpvInBuffer OPTIONAL, 00181 IN DWORD cbInBuffer, 00182 OUT LPVOID lpvOutBuffer OPTIONAL, 00183 IN DWORD cbOutBuffer, 00184 OUT LPDWORD lpcbBytesReturned, 00185 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00186 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00187 IN LPWSATHREADID lpThreadId OPTIONAL, 00188 OUT LPINT lpErrno); 00189 00190 typedef SOCKET 00191 (WSPAPI *LPWSPJOINLEAF)( 00192 IN SOCKET s, 00193 IN const struct sockaddr FAR *name, 00194 IN int namelen, 00195 IN LPWSABUF lpCallerData OPTIONAL, 00196 OUT LPWSABUF lpCalleeData OPTIONAL, 00197 IN LPQOS lpSQOS OPTIONAL, 00198 IN LPQOS lpGQOS OPTIONAL, 00199 IN DWORD dwFlags, 00200 OUT LPINT lpErrno); 00201 00202 typedef int 00203 (WSPAPI *LPWSPLISTEN)( 00204 IN SOCKET s, 00205 IN int backlog, 00206 OUT LPINT lpErrno); 00207 00208 typedef int 00209 (WSPAPI *LPWSPRECV)( 00210 IN SOCKET s, 00211 IN LPWSABUF lpBuffers, 00212 IN DWORD dwBufferCount, 00213 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL, 00214 IN OUT LPDWORD lpFlags, 00215 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00216 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00217 IN LPWSATHREADID lpThreadId OPTIONAL, 00218 IN LPINT lpErrno); 00219 00220 typedef int 00221 (WSPAPI *LPWSPRECVDISCONNECT)( 00222 IN SOCKET s, 00223 IN LPWSABUF lpInboundDisconnectData OPTIONAL, 00224 OUT LPINT lpErrno); 00225 00226 typedef int 00227 (WSPAPI *LPWSPRECVFROM)( 00228 IN SOCKET s, 00229 IN LPWSABUF lpBuffers, 00230 IN DWORD dwBufferCount, 00231 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL, 00232 IN OUT LPDWORD lpFlags, 00233 OUT struct sockaddr FAR *lpFrom OPTIONAL, 00234 IN OUT LPINT lpFromlen OPTIONAL, 00235 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00236 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00237 IN LPWSATHREADID lpThreadId OPTIONAL, 00238 OUT LPINT lpErrno); 00239 00240 typedef int 00241 (WSPAPI *LPWSPSELECT)( 00242 IN int nfds, 00243 IN OUT fd_set FAR *readfds OPTIONAL, 00244 IN OUT fd_set FAR *writefds OPTIONAL, 00245 IN OUT fd_set FAR *exceptfds OPTIONAL, 00246 IN const struct timeval FAR *timeout OPTIONAL, 00247 OUT LPINT lpErrno); 00248 00249 typedef int 00250 (WSPAPI *LPWSPSEND)( 00251 IN SOCKET s, 00252 IN LPWSABUF lpBuffers, 00253 IN DWORD dwBufferCount, 00254 OUT LPDWORD lpNumberOfBytesSent OPTIONAL, 00255 IN DWORD dwFlags, 00256 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00257 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00258 IN LPWSATHREADID lpThreadId OPTIONAL, 00259 OUT LPINT lpErrno); 00260 00261 typedef int 00262 (WSPAPI *LPWSPSENDDISCONNECT)( 00263 IN SOCKET s, 00264 IN LPWSABUF lpOutboundDisconnectData OPTIONAL, 00265 OUT LPINT lpErrno); 00266 00267 typedef int 00268 (WSPAPI *LPWSPSENDTO)( 00269 IN SOCKET s, 00270 IN LPWSABUF lpBuffers, 00271 IN DWORD dwBufferCount, 00272 OUT LPDWORD lpNumberOfBytesSent OPTIONAL, 00273 IN DWORD dwFlags, 00274 IN const struct sockaddr FAR *lpTo OPTIONAL, 00275 IN int iTolen, 00276 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00277 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00278 IN LPWSATHREADID lpThreadId OPTIONAL, 00279 OUT LPINT lpErrno); 00280 00281 typedef int 00282 (WSPAPI *LPWSPSETSOCKOPT)( 00283 IN SOCKET s, 00284 IN int level, 00285 IN int optname, 00286 IN const char FAR *optval OPTIONAL, 00287 IN int optlen, 00288 OUT LPINT lpErrno); 00289 00290 typedef int 00291 (WSPAPI *LPWSPSHUTDOWN)( 00292 IN SOCKET s, 00293 IN int how, 00294 OUT LPINT lpErrno); 00295 00296 typedef SOCKET 00297 (WSPAPI *LPWSPSOCKET)( 00298 IN int af, 00299 IN int type, 00300 IN int protocol, 00301 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL, 00302 IN GROUP g, 00303 IN DWORD dwFlags, 00304 OUT LPINT lpErrno); 00305 00306 typedef INT 00307 (WSPAPI *LPWSPSTRINGTOADDRESS)( 00308 IN LPWSTR AddressString, 00309 IN INT AddressFamily, 00310 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL, 00311 OUT LPSOCKADDR lpAddress, 00312 IN OUT LPINT lpAddressLength, 00313 OUT LPINT lpErrno); 00314 00315 typedef BOOL 00316 (WSPAPI *LPWPUCLOSEEVENT)( 00317 IN WSAEVENT hEvent, 00318 OUT LPINT lpErrno); 00319 00320 typedef int 00321 (WSPAPI *LPWPUCLOSESOCKETHANDLE)( 00322 IN SOCKET s, 00323 OUT LPINT lpErrno); 00324 00325 typedef WSAEVENT 00326 (WSPAPI *LPWPUCREATEEVENT)( 00327 OUT LPINT lpErrno); 00328 00329 typedef SOCKET 00330 (WSPAPI *LPWPUCREATESOCKETHANDLE)( 00331 IN DWORD dwCatalogEntryId, 00332 IN DWORD_PTR dwContext, 00333 OUT LPINT lpErrno); 00334 00335 typedef int 00336 (WSPAPI *LPWPUFDISSET)( 00337 IN SOCKET s, 00338 IN fd_set FAR *fdset); 00339 00340 typedef int 00341 (WSPAPI *LPWPUGETPROVIDERPATH)( 00342 IN LPGUID lpProviderId, 00343 OUT WCHAR FAR *lpszProviderDllPath, 00344 IN OUT LPINT lpProviderDllPathLen, 00345 OUT LPINT lpErrno); 00346 00347 typedef SOCKET 00348 (WSPAPI *LPWPUMODIFYIFSHANDLE)( 00349 IN DWORD dwCatalogEntryId, 00350 IN SOCKET ProposedHandle, 00351 OUT LPINT lpErrno); 00352 00353 typedef BOOL 00354 (WSPAPI *LPWPUPOSTMESSAGE)( 00355 IN HWND hWnd, 00356 IN UINT Msg, 00357 IN WPARAM wParam, 00358 IN LPARAM lParam); 00359 00360 typedef int 00361 (WSPAPI *LPWPUQUERYBLOCKINGCALLBACK)( 00362 IN DWORD dwCatalogEntryId, 00363 OUT LPBLOCKINGCALLBACK FAR *lplpfnCallback, 00364 OUT PDWORD_PTR lpdwContext, 00365 OUT LPINT lpErrno); 00366 00367 typedef int 00368 (WSPAPI *LPWPUQUERYSOCKETHANDLECONTEXT)( 00369 IN SOCKET s, 00370 OUT PDWORD_PTR lpContext, 00371 OUT LPINT lpErrno); 00372 00373 typedef int 00374 (WSPAPI *LPWPUQUEUEAPC)( 00375 IN LPWSATHREADID lpThreadId, 00376 IN LPWSAUSERAPC lpfnUserApc, 00377 IN DWORD_PTR dwContext, 00378 OUT LPINT lpErrno); 00379 00380 typedef BOOL 00381 (WSPAPI *LPWPURESETEVENT)( 00382 IN WSAEVENT hEvent, 00383 OUT LPINT lpErrno); 00384 00385 typedef BOOL 00386 (WSPAPI *LPWPUSETEVENT)( 00387 IN WSAEVENT hEvent, 00388 OUT LPINT lpErrno); 00389 00390 typedef int 00391 (WSPAPI *LPWPUOPENCURRENTTHREAD)( 00392 OUT LPWSATHREADID lpThreadId, 00393 OUT LPINT lpErrno); 00394 00395 typedef int 00396 (WSPAPI *LPWPUCLOSETHREAD)( 00397 IN LPWSATHREADID lpThreadId, 00398 OUT LPINT lpErrno); 00399 00400 typedef int 00401 (WSPAPI *LPWPUCOMPLETEOVERLAPPEDREQUEST)( 00402 IN SOCKET s, 00403 IN OUT LPWSAOVERLAPPED lpOverlapped, 00404 IN DWORD dwError, 00405 IN DWORD cbTransferred, 00406 OUT LPINT lpErrno); 00407 00408 typedef int 00409 (WSPAPI *LPWSCENUMPROTOCOLS)( 00410 IN LPINT lpiProtocols OPTIONAL, 00411 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer OPTIONAL, 00412 IN OUT LPDWORD lpdwBufferLength, 00413 OUT LPINT lpErrno); 00414 00415 typedef int 00416 (WSPAPI *LPWSCDEINSTALLPROVIDER)( 00417 IN LPGUID lpProviderId, 00418 OUT LPINT lpErrno); 00419 00420 typedef int 00421 (WSPAPI *LPWSCINSTALLPROVIDER)( 00422 IN LPGUID lpProviderId, 00423 IN const WCHAR FAR *lpszProviderDllPath, 00424 IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, 00425 IN DWORD dwNumberOfEntries, 00426 OUT LPINT lpErrno); 00427 00428 typedef int 00429 (WSPAPI *LPWSCGETPROVIDERPATH)( 00430 IN LPGUID lpProviderId, 00431 OUT WCHAR FAR *lpszProviderDllPath, 00432 IN OUT LPINT lpProviderDllPathLen, 00433 OUT LPINT lpErrno); 00434 00435 typedef INT 00436 (WSPAPI *LPWSCINSTALLNAMESPACE)( 00437 IN LPWSTR lpszIdentifier, 00438 IN LPWSTR lpszPathName, 00439 IN DWORD dwNameSpace, 00440 IN DWORD dwVersion, 00441 IN LPGUID lpProviderId); 00442 00443 typedef INT 00444 (WSPAPI *LPWSCUNINSTALLNAMESPACE)( 00445 IN LPGUID lpProviderId); 00446 00447 typedef INT 00448 (WSPAPI *LPWSCENABLENSPROVIDER)( 00449 IN LPGUID lpProviderId, 00450 IN BOOL fEnable); 00451 00452 /* Service provider procedure table */ 00453 typedef struct _WSPPROC_TABLE { 00454 LPWSPACCEPT lpWSPAccept; 00455 LPWSPADDRESSTOSTRING lpWSPAddressToString; 00456 LPWSPASYNCSELECT lpWSPAsyncSelect; 00457 LPWSPBIND lpWSPBind; 00458 LPWSPCANCELBLOCKINGCALL lpWSPCancelBlockingCall; 00459 LPWSPCLEANUP lpWSPCleanup; 00460 LPWSPCLOSESOCKET lpWSPCloseSocket; 00461 LPWSPCONNECT lpWSPConnect; 00462 LPWSPDUPLICATESOCKET lpWSPDuplicateSocket; 00463 LPWSPENUMNETWORKEVENTS lpWSPEnumNetworkEvents; 00464 LPWSPEVENTSELECT lpWSPEventSelect; 00465 LPWSPGETOVERLAPPEDRESULT lpWSPGetOverlappedResult; 00466 LPWSPGETPEERNAME lpWSPGetPeerName; 00467 LPWSPGETSOCKNAME lpWSPGetSockName; 00468 LPWSPGETSOCKOPT lpWSPGetSockOpt; 00469 LPWSPGETQOSBYNAME lpWSPGetQOSByName; 00470 LPWSPIOCTL lpWSPIoctl; 00471 LPWSPJOINLEAF lpWSPJoinLeaf; 00472 LPWSPLISTEN lpWSPListen; 00473 LPWSPRECV lpWSPRecv; 00474 LPWSPRECVDISCONNECT lpWSPRecvDisconnect; 00475 LPWSPRECVFROM lpWSPRecvFrom; 00476 LPWSPSELECT lpWSPSelect; 00477 LPWSPSEND lpWSPSend; 00478 LPWSPSENDDISCONNECT lpWSPSendDisconnect; 00479 LPWSPSENDTO lpWSPSendTo; 00480 LPWSPSETSOCKOPT lpWSPSetSockOpt; 00481 LPWSPSHUTDOWN lpWSPShutdown; 00482 LPWSPSOCKET lpWSPSocket; 00483 LPWSPSTRINGTOADDRESS lpWSPStringToAddress; 00484 } WSPPROC_TABLE, FAR* LPWSPPROC_TABLE; 00485 00486 typedef INT 00487 (WSAAPI *LPNSPCLEANUP)( 00488 IN LPGUID lpProviderId); 00489 00490 typedef INT 00491 (WSAAPI *LPNSPLOOKUPSERVICEBEGIN)( 00492 IN LPGUID lpProviderId, 00493 IN LPWSAQUERYSETW lpqsRestrictions, 00494 IN LPWSASERVICECLASSINFOW lpServiceClassInfo, 00495 IN DWORD dwControlFlags, 00496 OUT LPHANDLE lphLookup); 00497 00498 typedef INT 00499 (WSAAPI *LPNSPLOOKUPSERVICENEXT)( 00500 IN HANDLE hLookup, 00501 IN DWORD dwControlFlags, 00502 IN OUT LPDWORD lpdwBufferLength, 00503 OUT LPWSAQUERYSETW lpqsResults); 00504 00505 #if(_WIN32_WINNT >= 0x0501) 00506 typedef INT 00507 (WSAAPI *LPNSPIOCTL)( 00508 IN HANDLE hLookup, 00509 IN DWORD dwControlCode, 00510 IN LPVOID lpvInBuffer, 00511 IN DWORD cbInBuffer, 00512 OUT LPVOID lpvOutBuffer, 00513 IN DWORD cbOutBuffer, 00514 OUT LPDWORD lpcbBytesReturned, 00515 IN LPWSACOMPLETION lpCompletion OPTIONAL, 00516 IN LPWSATHREADID lpThreadId); 00517 #endif 00518 00519 typedef INT 00520 (WSAAPI *LPNSPLOOKUPSERVICEEND)( 00521 IN HANDLE hLookup); 00522 00523 typedef INT 00524 (WSAAPI *LPNSPSETSERVICE)( 00525 IN LPGUID lpProviderId, 00526 IN LPWSASERVICECLASSINFOW lpServiceClassInfo, 00527 IN LPWSAQUERYSETW lpqsRegInfo, 00528 IN WSAESETSERVICEOP essOperation, 00529 IN DWORD dwControlFlags); 00530 00531 typedef INT 00532 (WSAAPI *LPNSPINSTALLSERVICECLASS)( 00533 IN LPGUID lpProviderId, 00534 IN LPWSASERVICECLASSINFOW lpServiceClassInfo); 00535 00536 typedef INT 00537 (WSAAPI *LPNSPREMOVESERVICECLASS)( 00538 IN LPGUID lpProviderId, 00539 IN LPGUID lpServiceClassId); 00540 00541 typedef INT 00542 (WSAAPI *LPNSPGETSERVICECLASSINFO)( 00543 IN LPGUID lpProviderId, 00544 IN LPDWORD lpdwBufSize, 00545 IN LPWSASERVICECLASSINFOW lpServiceClassInfo); 00546 00547 typedef INT 00548 (WSAAPI *LPNSPV2STARTUP)( 00549 IN LPGUID lpProviderId, 00550 OUT LPVOID *ppvClientSessionArg); 00551 00552 typedef INT 00553 (WSAAPI *LPNSPV2CLEANUP)( 00554 IN LPGUID lpProviderId, 00555 IN LPVOID pvClientSessionArg); 00556 00557 typedef INT 00558 (WSAAPI *LPNSPV2LOOKUPSERVICEBEGIN)( 00559 IN LPGUID lpProviderId, 00560 IN LPWSAQUERYSET2W lpqsRestrictions, 00561 IN DWORD dwControlFlags, 00562 IN LPVOID lpvClientSessionArg, 00563 OUT LPHANDLE lphLookup); 00564 00565 typedef VOID 00566 (WSAAPI *LPNSPV2LOOKUPSERVICENEXTEX)( 00567 IN HANDLE hAsyncCall, 00568 IN HANDLE hLookup, 00569 IN DWORD dwControlFlags, 00570 IN LPDWORD lpdwBufferLength, 00571 OUT LPWSAQUERYSET2W lpqsResults); 00572 00573 typedef INT 00574 (WSAAPI *LPNSPV2LOOKUPSERVICEEND)( 00575 IN HANDLE hLookup); 00576 00577 typedef VOID 00578 (WSAAPI *LPNSPV2SETSERVICEEX)( 00579 IN HANDLE hAsyncCall, 00580 IN LPGUID lpProviderId, 00581 IN LPWSAQUERYSET2W lpqsRegInfo, 00582 IN WSAESETSERVICEOP essOperation, 00583 IN DWORD dwControlFlags, 00584 IN LPVOID lpvClientSessionArg); 00585 00586 typedef VOID 00587 (WSAAPI *LPNSPV2CLIENTSESSIONRUNDOWN)( 00588 IN LPGUID lpProviderId, 00589 IN LPVOID pvClientSessionArg); 00590 00591 /* Service Provider upcall table */ 00592 typedef struct _WSPUPCALLTABLE { 00593 LPWPUCLOSEEVENT lpWPUCloseEvent; 00594 LPWPUCLOSESOCKETHANDLE lpWPUCloseSocketHandle; 00595 LPWPUCREATEEVENT lpWPUCreateEvent; 00596 LPWPUCREATESOCKETHANDLE lpWPUCreateSocketHandle; 00597 LPWPUFDISSET lpWPUFDIsSet; 00598 LPWPUGETPROVIDERPATH lpWPUGetProviderPath; 00599 LPWPUMODIFYIFSHANDLE lpWPUModifyIFSHandle; 00600 LPWPUPOSTMESSAGE lpWPUPostMessage; 00601 LPWPUQUERYBLOCKINGCALLBACK lpWPUQueryBlockingCallback; 00602 LPWPUQUERYSOCKETHANDLECONTEXT lpWPUQuerySocketHandleContext; 00603 LPWPUQUEUEAPC lpWPUQueueApc; 00604 LPWPURESETEVENT lpWPUResetEvent; 00605 LPWPUSETEVENT lpWPUSetEvent; 00606 LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread; 00607 LPWPUCLOSETHREAD lpWPUCloseThread; 00608 } WSPUPCALLTABLE, FAR* LPWSPUPCALLTABLE; 00609 00610 typedef int 00611 (WSPAPI *LPWSPSTARTUP)( 00612 IN WORD wVersionRequested, 00613 IN LPWSPDATA lpWSPData, 00614 IN LPWSAPROTOCOL_INFOW lpProtocolInfo, 00615 IN WSPUPCALLTABLE UpcallTable, 00616 OUT LPWSPPROC_TABLE lpProcTable); 00617 00618 #if (_WIN32_WINNT >= 0x0600) 00619 00620 #define LSP_SYSTEM 0x80000000 00621 #define LSP_INSPECTOR 0x00000001 00622 #define LSP_REDIRECTOR 0x00000002 00623 #define LSP_PROXY 0x00000004 00624 #define LSP_FIREWALL 0x00000008 00625 #define LSP_INBOUND_MODIFY 0x00000010 00626 #define LSP_OUTBOUND_MODIFY 0x00000020 00627 #define LSP_CRYPTO_COMPRESS 0x00000040 00628 #define LSP_LOCAL_CACHE 0x00000080 00629 00630 typedef enum _WSC_PROVIDER_INFO_TYPE { 00631 ProviderInfoLspCategories, 00632 ProviderInfoAudit 00633 } WSC_PROVIDER_INFO_TYPE ; 00634 00635 typedef struct _WSC_PROVIDER_AUDIT_INFO { 00636 DWORD RecordSize; 00637 PVOID Reserved; 00638 } WSC_PROVIDER_AUDIT_INFO; 00639 00640 #endif /* (_WIN32_WINNT >= 0x0600) */ 00641 00642 typedef struct _NSP_ROUTINE { 00643 DWORD cbSize; 00644 DWORD dwMajorVersion; 00645 DWORD dwMinorVersion; 00646 LPNSPCLEANUP NSPCleanup; 00647 LPNSPLOOKUPSERVICEBEGIN NSPLookupServiceBegin; 00648 LPNSPLOOKUPSERVICENEXT NSPLookupServiceNext; 00649 LPNSPLOOKUPSERVICEEND NSPLookupServiceEnd; 00650 LPNSPSETSERVICE NSPSetService; 00651 LPNSPINSTALLSERVICECLASS NSPInstallServiceClass; 00652 LPNSPREMOVESERVICECLASS NSPRemoveServiceClass; 00653 LPNSPGETSERVICECLASSINFO NSPGetServiceClassInfo; 00654 LPNSPIOCTL NSPIoctl; 00655 } NSP_ROUTINE, *PNSP_ROUTINE, FAR* LPNSP_ROUTINE; 00656 00657 typedef INT 00658 (WSAAPI *LPNSPSTARTUP)( 00659 IN LPGUID lpProviderId, 00660 IN OUT LPNSP_ROUTINE lpnspRoutines); 00661 00662 typedef struct _NSPV2_ROUTINE { 00663 DWORD cbSize; 00664 DWORD dwMajorVersion; 00665 DWORD dwMinorVersion; 00666 LPNSPV2STARTUP NSPv2Startup; 00667 LPNSPV2CLEANUP NSPv2Cleanup; 00668 LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin; 00669 LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx; 00670 LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd; 00671 LPNSPV2SETSERVICEEX NSPv2SetServiceEx; 00672 LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown; 00673 } NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPNSPV2_ROUTINE; 00674 typedef const NSPV2_ROUTINE *PCNSPV2_ROUTINE, *LPCNSPV2_ROUTINE; 00675 00676 int 00677 WSPAPI 00678 WSPStartup( 00679 IN WORD wVersionRequested, 00680 IN LPWSPDATA lpWSPData, 00681 IN LPWSAPROTOCOL_INFOW lpProtocolInfo, 00682 IN WSPUPCALLTABLE UpcallTable, 00683 OUT LPWSPPROC_TABLE lpProcTable); 00684 00685 int 00686 WSPAPI 00687 WSCEnumProtocols( 00688 IN LPINT lpiProtocols OPTIONAL, 00689 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer OPTIONAL, 00690 IN OUT LPDWORD lpdwBufferLength, 00691 OUT LPINT lpErrno); 00692 00693 #if (_WIN32_WINNT >= 0x0501) 00694 00695 int 00696 WSPAPI 00697 WPUOpenCurrentThread( 00698 OUT LPWSATHREADID lpThreadId, 00699 OUT LPINT lpErrno); 00700 00701 int 00702 WSPAPI 00703 WPUCloseThread( 00704 IN LPWSATHREADID lpThreadId, 00705 OUT LPINT lpErrno); 00706 00707 #define WSCEnumNameSpaceProviders WSAEnumNameSpaceProvidersW 00708 #define LPFN_WSCENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW 00709 00710 int 00711 WSPAPI 00712 WSCUpdateProvider( 00713 IN LPGUID lpProviderId, 00714 IN const WCHAR FAR *lpszProviderDllPath, 00715 IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, 00716 IN DWORD dwNumberOfEntries, 00717 OUT LPINT lpErrno); 00718 00719 typedef int 00720 (WSPAPI *LPWSCUPDATEPROVIDER)( 00721 IN LPGUID lpProviderId, 00722 IN const WCHAR FAR *lpszProviderDllPath, 00723 IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, 00724 IN DWORD dwNumberOfEntries, 00725 OUT LPINT lpErrno); 00726 00727 #if defined(_WIN64) 00728 00729 int 00730 WSPAPI 00731 WSCEnumProtocols32( 00732 IN LPINT lpiProtocols OPTIONAL, 00733 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, 00734 IN OUT LPDWORD lpdwBufferLength, 00735 OUT LPINT lpErrno); 00736 00737 int 00738 WSPAPI 00739 WSCDeinstallProvider32( 00740 IN LPGUID lpProviderId, 00741 OUT LPINT lpErrno); 00742 00743 int 00744 WSPAPI 00745 WSCInstallProvider64_32( 00746 IN LPGUID lpProviderId, 00747 IN const WCHAR FAR *lpszProviderDllPath, 00748 IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, 00749 IN DWORD dwNumberOfEntries, 00750 OUT LPINT lpErrno); 00751 00752 int 00753 WSPAPI 00754 WSCGetProviderPath32( 00755 IN LPGUID lpProviderId, 00756 OUT WCHAR FAR *lpszProviderDllPath, 00757 IN OUT LPINT lpProviderDllPathLen, 00758 OUT LPINT lpErrno); 00759 00760 int 00761 WSPAPI 00762 WSCUpdateProvider32( 00763 IN LPGUID lpProviderId, 00764 IN const WCHAR FAR *lpszProviderDllPath, 00765 IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, 00766 IN DWORD dwNumberOfEntries, 00767 OUT LPINT lpErrno); 00768 00769 INT 00770 WSAAPI 00771 WSCEnumNameSpaceProviders32( 00772 IN OUT LPDWORD lpdwBufferLength, 00773 OUT LPWSANAMESPACE_INFOW lpnspBuffer); 00774 00775 INT 00776 WSPAPI 00777 WSCInstallNameSpace32( 00778 IN LPWSTR lpszIdentifier, 00779 IN LPWSTR lpszPathName, 00780 IN DWORD dwNameSpace, 00781 IN DWORD dwVersion, 00782 IN LPGUID lpProviderId); 00783 00784 INT 00785 WSPAPI 00786 WSCUnInstallNameSpace32( 00787 IN LPGUID lpProviderId); 00788 00789 INT 00790 WSPAPI 00791 WSCEnableNSProvider32( 00792 IN LPGUID lpProviderId, 00793 IN BOOL fEnable); 00794 00795 #endif /* defined(_WIN64) */ 00796 00797 #endif /* defined(_WIN32_WINNT >= 0x0501) */ 00798 00799 int 00800 WSPAPI 00801 WSCDeinstallProvider( 00802 IN LPGUID lpProviderId, 00803 OUT LPINT lpErrno); 00804 00805 int 00806 WSPAPI 00807 WSCInstallProvider( 00808 IN LPGUID lpProviderId, 00809 IN const WCHAR FAR *lpszProviderDllPath, 00810 IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, 00811 IN DWORD dwNumberOfEntries, 00812 OUT LPINT lpErrno); 00813 00814 int 00815 WSPAPI 00816 WSCGetProviderPath( 00817 IN LPGUID lpProviderId, 00818 OUT WCHAR FAR *lpszProviderDllPath, 00819 IN OUT LPINT lpProviderDllPathLen, 00820 OUT LPINT lpErrno); 00821 00822 #if (_WIN32_WINNT < 0x0600) 00823 00824 int 00825 WSPAPI 00826 WSCInstallQOSTemplate( 00827 IN const LPGUID Guid, 00828 IN LPWSABUF QosName, 00829 IN LPQOS Qos); 00830 00831 typedef int 00832 (WSPAPI *LPWSCINSTALLQOSTEMPLATE)( 00833 IN const LPGUID Guid, 00834 IN LPWSABUF QosName, 00835 IN LPQOS Qos); 00836 00837 int 00838 WSPAPI 00839 WSCRemoveQOSTemplate( 00840 IN const LPGUID Guid, 00841 IN LPWSABUF QosName); 00842 00843 typedef int 00844 (WSPAPI *LPWSCREMOVEQOSTEMPLATE)( 00845 IN const LPGUID Guid, 00846 IN LPWSABUF QosName); 00847 00848 #endif /* (_WIN32_WINNT < 0x0600) */ 00849 00850 #if(_WIN32_WINNT >= 0x0600) 00851 00852 int 00853 WSPAPI 00854 WSCSetProviderInfo( 00855 IN LPGUID lpProviderId, 00856 IN WSC_PROVIDER_INFO_TYPE InfoType, 00857 IN PBYTE Info, 00858 IN size_t InfoSize, 00859 IN DWORD Flags, 00860 OUT LPINT lpErrno); 00861 00862 int 00863 WSPAPI 00864 WSCGetProviderInfo( 00865 IN LPGUID lpProviderId, 00866 IN WSC_PROVIDER_INFO_TYPE InfoType, 00867 OUT PBYTE Info, 00868 IN OUT *InfoSize, 00869 IN DWORD Flags, 00870 OUT LPINT lpErrno); 00871 00872 int 00873 WSPAPI 00874 WSCSetApplicationCategory( 00875 IN LPCWSTR Path, 00876 IN DWORD PathLength, 00877 IN LPCWSTR Extra OPTIONAL, 00878 IN DWORD ExtraLength, 00879 IN DWORD PermittedLspCategories, 00880 OUT DWORD *pPrevPermLspCat OPTIONAL, 00881 OUT LPINT lpErrno); 00882 00883 int 00884 WSPAPI 00885 WSCGetApplicationCategory( 00886 IN LPCWSTR Path, 00887 IN DWORD PathLength, 00888 IN LPCWSTR Extra OPTIONAL, 00889 IN DWORD ExtraLength, 00890 OUT DWORD *pPermittedLspCategories, 00891 OUT LPINT lpErrno); 00892 00893 #define WSCEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW 00894 #define LPFN_WSCENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW 00895 00896 INT 00897 WSPAPI 00898 WSCInstallNameSpaceEx( 00899 IN LPWSTR lpszIdentifier, 00900 IN LPWSTR lpszPathName, 00901 IN DWORD dwNameSpace, 00902 IN DWORD dwVersion, 00903 IN LPGUID lpProviderId, 00904 IN LPBLOB lpProviderSpecific); 00905 00906 INT 00907 WSAAPI 00908 WSAAdvertiseProvider( 00909 IN const GUID *puuidProviderId, 00910 IN const LPCNSPV2_ROUTINE pNSPv2Routine); 00911 00912 INT 00913 WSAAPI 00914 WSAUnadvertiseProvider( 00915 IN const GUID *puuidProviderId); 00916 00917 INT 00918 WSAAPI 00919 WSAProviderCompleteAsyncCall( 00920 IN HANDLE hAsyncCall, 00921 IN INT iRetCode); 00922 00923 #if defined(_WIN64) 00924 00925 int 00926 WSPAPI 00927 WSCSetProviderInfo32( 00928 IN LPGUID lpProviderId, 00929 IN WSC_PROVIDER_INFO_TYPE InfoType, 00930 IN PBYTE Info, 00931 IN size_t InfoSize, 00932 IN DWORD Flags, 00933 OUT LPINT lpErrno); 00934 00935 int 00936 WSPAPI 00937 WSCGetProviderInfo32( 00938 IN LPGUID lpProviderId, 00939 IN WSC_PROVIDER_INFO_TYPE InfoType, 00940 OUT PBYTE Info, 00941 IN OUT size_t *InfoSize, 00942 IN DWORD Flags, 00943 OUT LPINT lpErrno); 00944 00945 INT 00946 WSAAPI 00947 WSCEnumNameSpaceProvidersEx32( 00948 IN OUT LPDWORD lpdwBufferLength, 00949 OUT LPWSANAMESPACE_INFOEXW lpnspBuffer); 00950 00951 INT 00952 WSPAPI 00953 WSCInstallNameSpaceEx32( 00954 IN LPWSTR lpszIdentifier, 00955 IN LPWSTR lpszPathName, 00956 IN DWORD dwNameSpace, 00957 IN DWORD dwVersion, 00958 IN LPGUID lpProviderId, 00959 IN LPBLOB lpProviderSpecific); 00960 00961 #endif /* (_WIN64) */ 00962 00963 #if defined(_WIN64) 00964 int 00965 WSPAPI 00966 WSCInstallProviderAndChains64_32( 00967 #else 00968 int 00969 WSPAPI 00970 WSCInstallProviderAndChains( 00971 #endif 00972 IN LPGUID lpProviderId, 00973 IN const LPWSTR lpszProviderDllPath, 00974 #if defined(_WIN64) 00975 IN const LPWSTR lpszProviderDllPath32, 00976 #endif 00977 IN const LPWSTR lpszLspName, 00978 IN DWORD dwServiceFlags, 00979 IN OUT LPWSAPROTOCOL_INFOW lpProtocolInfoList, 00980 IN DWORD dwNumberOfEntries, 00981 OUT LPDWORD lpdwCatalogEntryId OPTIONAL, 00982 OUT LPINT lpErrno); 00983 00984 #endif /* (_WIN32_WINNT >= 0x0600) */ 00985 00986 BOOL 00987 WSPAPI 00988 WPUCloseEvent( 00989 IN WSAEVENT hEvent, 00990 OUT LPINT lpErrno); 00991 00992 int 00993 WSPAPI 00994 WPUCloseSocketHandle( 00995 IN SOCKET s, 00996 OUT LPINT lpErrno); 00997 00998 WSAEVENT 00999 WSPAPI 01000 WPUCreateEvent( 01001 OUT LPINT lpErrno); 01002 01003 SOCKET 01004 WSPAPI 01005 WPUCreateSocketHandle( 01006 IN DWORD dwCatalogEntryId, 01007 IN DWORD_PTR dwContext, 01008 OUT LPINT lpErrno); 01009 01010 int 01011 WSPAPI 01012 WPUFDIsSet( 01013 IN SOCKET s, 01014 IN fd_set FAR *fdset); 01015 01016 int 01017 WSPAPI 01018 WPUGetProviderPath( 01019 IN LPGUID lpProviderId, 01020 OUT WCHAR FAR *lpszProviderDllPath, 01021 IN OUT LPINT lpProviderDllPathLen, 01022 OUT LPINT lpErrno); 01023 01024 SOCKET 01025 WSPAPI 01026 WPUModifyIFSHandle( 01027 IN DWORD dwCatalogEntryId, 01028 IN SOCKET ProposedHandle, 01029 OUT LPINT lpErrno); 01030 01031 BOOL 01032 WSPAPI 01033 WPUPostMessage( 01034 IN HWND hWnd, 01035 IN UINT Msg, 01036 IN WPARAM wParam, 01037 IN LPARAM lParam); 01038 01039 int 01040 WSPAPI 01041 WPUQueryBlockingCallback( 01042 IN DWORD dwCatalogEntryId, 01043 OUT LPBLOCKINGCALLBACK FAR *lplpfnCallback, 01044 OUT PDWORD_PTR lpdwContext, 01045 OUT LPINT lpErrno); 01046 01047 int 01048 WSPAPI 01049 WPUQuerySocketHandleContext( 01050 IN SOCKET s, 01051 OUT PDWORD_PTR lpContext, 01052 OUT LPINT lpErrno); 01053 01054 int 01055 WSPAPI 01056 WPUQueueApc( 01057 IN LPWSATHREADID lpThreadId, 01058 IN LPWSAUSERAPC lpfnUserApc, 01059 IN DWORD_PTR dwContext, 01060 OUT LPINT lpErrno); 01061 01062 BOOL 01063 WSPAPI 01064 WPUResetEvent( 01065 IN WSAEVENT hEvent, 01066 OUT LPINT lpErrno); 01067 01068 BOOL 01069 WSPAPI 01070 WPUSetEvent( 01071 IN WSAEVENT hEvent, 01072 OUT LPINT lpErrno); 01073 01074 int 01075 WSPAPI 01076 WPUCompleteOverlappedRequest( 01077 IN SOCKET s, 01078 IN OUT LPWSAOVERLAPPED lpOverlapped, 01079 IN DWORD dwError, 01080 IN DWORD cbTransferred, 01081 OUT LPINT lpErrno); 01082 01083 INT 01084 WSPAPI 01085 WSCInstallNameSpace( 01086 IN LPWSTR lpszIdentifier, 01087 IN LPWSTR lpszPathName, 01088 IN DWORD dwNameSpace, 01089 IN DWORD dwVersion, 01090 IN LPGUID lpProviderId); 01091 01092 INT 01093 WSPAPI 01094 WSCUnInstallNameSpace( 01095 IN LPGUID lpProviderId); 01096 01097 INT 01098 WSPAPI 01099 WSCEnableNSProvider( 01100 IN LPGUID lpProviderId, 01101 IN BOOL fEnable); 01102 01103 INT 01104 WSAAPI 01105 NSPStartup( 01106 IN LPGUID lpProviderId, 01107 IN OUT LPNSP_ROUTINE lpnspRoutines); 01108 01109 #if !defined(_WIN64) 01110 #include <poppack.h> 01111 #endif 01112 01113 #ifdef __cplusplus 01114 } 01115 #endif Generated on Sat May 26 2012 04:31:50 for ReactOS by
1.7.6.1
|