4 * Winsock 2 Service Provider interface.
7 * THIS SOFTWARE IS NOT COPYRIGHTED
9 * This source code is offered for use in the public domain. You may
10 * use, modify or distribute it freely.
12 * This code is distributed in the hope that it will be useful but
13 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
14 * DISCLAIMED. This includes but is not limited to warranties of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
34 #define WSPDESCRIPTION_LEN 255
36 #define WSS_OPERATION_IN_PROGRESS 0x00000103L
40 typedef struct _WSATHREADID
{
43 } WSATHREADID
, FAR
*LPWSATHREADID
;
45 typedef struct WSPData
{
48 WCHAR szDescription
[WSPDESCRIPTION_LEN
+1];
49 } WSPDATA
, FAR
*LPWSPDATA
;
52 (CALLBACK FAR
*LPBLOCKINGCALLBACK
)(
56 (WSPAPI
*LPWSPACCEPT
)(
58 OUT
struct sockaddr FAR
*addr OPTIONAL
,
59 IN OUT LPINT addrlen OPTIONAL
,
60 IN LPCONDITIONPROC lpfnCondition OPTIONAL
,
61 IN DWORD_PTR dwCallbackData OPTIONAL
,
65 (CALLBACK FAR
*LPWSAUSERAPC
)(
69 (WSPAPI
*LPWSPADDRESSTOSTRING
)(
70 IN LPSOCKADDR lpsaAddress
,
71 IN DWORD dwAddressLength
,
72 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
73 OUT LPWSTR lpszAddressString
,
74 IN OUT LPDWORD lpdwAddressStringLength
,
78 (WSPAPI
*LPWSPASYNCSELECT
)(
88 IN
const struct sockaddr FAR
*name
,
93 (WSPAPI
*LPWSPCANCELBLOCKINGCALL
)(
97 (WSPAPI
*LPWSPCLEANUP
)(
101 (WSPAPI
*LPWSPCLOSESOCKET
)(
106 (WSPAPI
*LPWSPCONNECT
)(
108 IN
const struct sockaddr FAR
*name
,
110 IN LPWSABUF lpCallerData OPTIONAL
,
111 OUT LPWSABUF lpCalleeData OPTIONAL
,
112 IN LPQOS lpSQOS OPTIONAL
,
113 IN LPQOS lpGQOS OPTIONAL
,
117 (WSPAPI
*LPWSPDUPLICATESOCKET
)(
119 IN DWORD dwProcessId
,
120 OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
,
124 (WSPAPI
*LPWSPENUMNETWORKEVENTS
)(
126 IN WSAEVENT hEventObject
,
127 OUT LPWSANETWORKEVENTS lpNetworkEvents
,
131 (WSPAPI
*LPWSPEVENTSELECT
)(
133 IN WSAEVENT hEventObject
,
134 IN
long lNetworkEvents
,
138 (WSPAPI
*LPWSPGETOVERLAPPEDRESULT
)(
140 IN LPWSAOVERLAPPED lpOverlapped
,
141 OUT LPDWORD lpcbTransfer
,
143 OUT LPDWORD lpdwFlags
,
147 (WSPAPI
*LPWSPGETPEERNAME
)(
149 OUT
struct sockaddr FAR
*name
,
150 IN OUT LPINT namelen
,
154 (WSPAPI
*LPWSPGETSOCKNAME
)(
156 OUT
struct sockaddr FAR
*name
,
157 IN OUT LPINT namelen
,
161 (WSPAPI
*LPWSPGETSOCKOPT
)(
165 OUT
char FAR
*optval
,
170 (WSPAPI
*LPWSPGETQOSBYNAME
)(
172 IN LPWSABUF lpQOSName
,
177 (WSPAPI
*LPWSPIOCTL
)(
179 IN DWORD dwIoControlCode
,
180 IN LPVOID lpvInBuffer OPTIONAL
,
182 OUT LPVOID lpvOutBuffer OPTIONAL
,
183 IN DWORD cbOutBuffer
,
184 OUT LPDWORD lpcbBytesReturned
,
185 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
186 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
,
187 IN LPWSATHREADID lpThreadId OPTIONAL
,
191 (WSPAPI
*LPWSPJOINLEAF
)(
193 IN
const struct sockaddr FAR
*name
,
195 IN LPWSABUF lpCallerData OPTIONAL
,
196 OUT LPWSABUF lpCalleeData OPTIONAL
,
197 IN LPQOS lpSQOS OPTIONAL
,
198 IN LPQOS lpGQOS OPTIONAL
,
203 (WSPAPI
*LPWSPLISTEN
)(
211 IN LPWSABUF lpBuffers
,
212 IN DWORD dwBufferCount
,
213 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
214 IN OUT LPDWORD lpFlags
,
215 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
216 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
,
217 IN LPWSATHREADID lpThreadId OPTIONAL
,
221 (WSPAPI
*LPWSPRECVDISCONNECT
)(
223 IN LPWSABUF lpInboundDisconnectData OPTIONAL
,
227 (WSPAPI
*LPWSPRECVFROM
)(
229 IN LPWSABUF lpBuffers
,
230 IN DWORD dwBufferCount
,
231 OUT LPDWORD lpNumberOfBytesRecvd OPTIONAL
,
232 IN OUT LPDWORD lpFlags
,
233 OUT
struct sockaddr FAR
*lpFrom OPTIONAL
,
234 IN OUT LPINT lpFromlen OPTIONAL
,
235 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
236 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
,
237 IN LPWSATHREADID lpThreadId OPTIONAL
,
241 (WSPAPI
*LPWSPSELECT
)(
243 IN OUT fd_set FAR
*readfds OPTIONAL
,
244 IN OUT fd_set FAR
*writefds OPTIONAL
,
245 IN OUT fd_set FAR
*exceptfds OPTIONAL
,
246 IN
const struct timeval FAR
*timeout OPTIONAL
,
252 IN LPWSABUF lpBuffers
,
253 IN DWORD dwBufferCount
,
254 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
256 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
257 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
,
258 IN LPWSATHREADID lpThreadId OPTIONAL
,
262 (WSPAPI
*LPWSPSENDDISCONNECT
)(
264 IN LPWSABUF lpOutboundDisconnectData OPTIONAL
,
268 (WSPAPI
*LPWSPSENDTO
)(
270 IN LPWSABUF lpBuffers
,
271 IN DWORD dwBufferCount
,
272 OUT LPDWORD lpNumberOfBytesSent OPTIONAL
,
274 IN
const struct sockaddr FAR
*lpTo OPTIONAL
,
276 IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL
,
277 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
,
278 IN LPWSATHREADID lpThreadId OPTIONAL
,
282 (WSPAPI
*LPWSPSETSOCKOPT
)(
286 IN
const char FAR
*optval OPTIONAL
,
291 (WSPAPI
*LPWSPSHUTDOWN
)(
297 (WSPAPI
*LPWSPSOCKET
)(
301 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
307 (WSPAPI
*LPWSPSTRINGTOADDRESS
)(
308 IN LPWSTR AddressString
,
309 IN INT AddressFamily
,
310 IN LPWSAPROTOCOL_INFOW lpProtocolInfo OPTIONAL
,
311 OUT LPSOCKADDR lpAddress
,
312 IN OUT LPINT lpAddressLength
,
316 (WSPAPI
*LPWPUCLOSEEVENT
)(
321 (WSPAPI
*LPWPUCLOSESOCKETHANDLE
)(
326 (WSPAPI
*LPWPUCREATEEVENT
)(
330 (WSPAPI
*LPWPUCREATESOCKETHANDLE
)(
331 IN DWORD dwCatalogEntryId
,
332 IN DWORD_PTR dwContext
,
336 (WSPAPI
*LPWPUFDISSET
)(
338 IN fd_set FAR
*fdset
);
341 (WSPAPI
*LPWPUGETPROVIDERPATH
)(
342 IN LPGUID lpProviderId
,
343 OUT WCHAR FAR
*lpszProviderDllPath
,
344 IN OUT LPINT lpProviderDllPathLen
,
348 (WSPAPI
*LPWPUMODIFYIFSHANDLE
)(
349 IN DWORD dwCatalogEntryId
,
350 IN SOCKET ProposedHandle
,
354 (WSPAPI
*LPWPUPOSTMESSAGE
)(
361 (WSPAPI
*LPWPUQUERYBLOCKINGCALLBACK
)(
362 IN DWORD dwCatalogEntryId
,
363 OUT LPBLOCKINGCALLBACK FAR
*lplpfnCallback
,
364 OUT PDWORD_PTR lpdwContext
,
368 (WSPAPI
*LPWPUQUERYSOCKETHANDLECONTEXT
)(
370 OUT PDWORD_PTR lpContext
,
374 (WSPAPI
*LPWPUQUEUEAPC
)(
375 IN LPWSATHREADID lpThreadId
,
376 IN LPWSAUSERAPC lpfnUserApc
,
377 IN DWORD_PTR dwContext
,
381 (WSPAPI
*LPWPURESETEVENT
)(
386 (WSPAPI
*LPWPUSETEVENT
)(
391 (WSPAPI
*LPWPUOPENCURRENTTHREAD
)(
392 OUT LPWSATHREADID lpThreadId
,
396 (WSPAPI
*LPWPUCLOSETHREAD
)(
397 IN LPWSATHREADID lpThreadId
,
401 (WSPAPI
*LPWPUCOMPLETEOVERLAPPEDREQUEST
)(
403 IN OUT LPWSAOVERLAPPED lpOverlapped
,
405 IN DWORD cbTransferred
,
409 (WSPAPI
*LPWSCENUMPROTOCOLS
)(
410 IN LPINT lpiProtocols OPTIONAL
,
411 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer OPTIONAL
,
412 IN OUT LPDWORD lpdwBufferLength
,
416 (WSPAPI
*LPWSCDEINSTALLPROVIDER
)(
417 IN LPGUID lpProviderId
,
421 (WSPAPI
*LPWSCINSTALLPROVIDER
)(
422 IN LPGUID lpProviderId
,
423 IN
const WCHAR FAR
*lpszProviderDllPath
,
424 IN
const LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
425 IN DWORD dwNumberOfEntries
,
429 (WSPAPI
*LPWSCGETPROVIDERPATH
)(
430 IN LPGUID lpProviderId
,
431 OUT WCHAR FAR
*lpszProviderDllPath
,
432 IN OUT LPINT lpProviderDllPathLen
,
436 (WSPAPI
*LPWSCINSTALLNAMESPACE
)(
437 IN LPWSTR lpszIdentifier
,
438 IN LPWSTR lpszPathName
,
439 IN DWORD dwNameSpace
,
441 IN LPGUID lpProviderId
);
444 (WSPAPI
*LPWSCUNINSTALLNAMESPACE
)(
445 IN LPGUID lpProviderId
);
448 (WSPAPI
*LPWSCENABLENSPROVIDER
)(
449 IN LPGUID lpProviderId
,
452 /* Service provider procedure table */
453 typedef struct _WSPPROC_TABLE
{
454 LPWSPACCEPT lpWSPAccept
;
455 LPWSPADDRESSTOSTRING lpWSPAddressToString
;
456 LPWSPASYNCSELECT lpWSPAsyncSelect
;
458 LPWSPCANCELBLOCKINGCALL lpWSPCancelBlockingCall
;
459 LPWSPCLEANUP lpWSPCleanup
;
460 LPWSPCLOSESOCKET lpWSPCloseSocket
;
461 LPWSPCONNECT lpWSPConnect
;
462 LPWSPDUPLICATESOCKET lpWSPDuplicateSocket
;
463 LPWSPENUMNETWORKEVENTS lpWSPEnumNetworkEvents
;
464 LPWSPEVENTSELECT lpWSPEventSelect
;
465 LPWSPGETOVERLAPPEDRESULT lpWSPGetOverlappedResult
;
466 LPWSPGETPEERNAME lpWSPGetPeerName
;
467 LPWSPGETSOCKNAME lpWSPGetSockName
;
468 LPWSPGETSOCKOPT lpWSPGetSockOpt
;
469 LPWSPGETQOSBYNAME lpWSPGetQOSByName
;
470 LPWSPIOCTL lpWSPIoctl
;
471 LPWSPJOINLEAF lpWSPJoinLeaf
;
472 LPWSPLISTEN lpWSPListen
;
474 LPWSPRECVDISCONNECT lpWSPRecvDisconnect
;
475 LPWSPRECVFROM lpWSPRecvFrom
;
476 LPWSPSELECT lpWSPSelect
;
478 LPWSPSENDDISCONNECT lpWSPSendDisconnect
;
479 LPWSPSENDTO lpWSPSendTo
;
480 LPWSPSETSOCKOPT lpWSPSetSockOpt
;
481 LPWSPSHUTDOWN lpWSPShutdown
;
482 LPWSPSOCKET lpWSPSocket
;
483 LPWSPSTRINGTOADDRESS lpWSPStringToAddress
;
484 } WSPPROC_TABLE
, FAR
* LPWSPPROC_TABLE
;
487 (WSAAPI
*LPNSPCLEANUP
)(
488 IN LPGUID lpProviderId
);
491 (WSAAPI
*LPNSPLOOKUPSERVICEBEGIN
)(
492 IN LPGUID lpProviderId
,
493 IN LPWSAQUERYSETW lpqsRestrictions
,
494 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
,
495 IN DWORD dwControlFlags
,
496 OUT LPHANDLE lphLookup
);
499 (WSAAPI
*LPNSPLOOKUPSERVICENEXT
)(
501 IN DWORD dwControlFlags
,
502 IN OUT LPDWORD lpdwBufferLength
,
503 OUT LPWSAQUERYSETW lpqsResults
);
505 #if(_WIN32_WINNT >= 0x0501)
507 (WSAAPI
*LPNSPIOCTL
)(
509 IN DWORD dwControlCode
,
510 IN LPVOID lpvInBuffer
,
512 OUT LPVOID lpvOutBuffer
,
513 IN DWORD cbOutBuffer
,
514 OUT LPDWORD lpcbBytesReturned
,
515 IN LPWSACOMPLETION lpCompletion OPTIONAL
,
516 IN LPWSATHREADID lpThreadId
);
520 (WSAAPI
*LPNSPLOOKUPSERVICEEND
)(
524 (WSAAPI
*LPNSPSETSERVICE
)(
525 IN LPGUID lpProviderId
,
526 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
,
527 IN LPWSAQUERYSETW lpqsRegInfo
,
528 IN WSAESETSERVICEOP essOperation
,
529 IN DWORD dwControlFlags
);
532 (WSAAPI
*LPNSPINSTALLSERVICECLASS
)(
533 IN LPGUID lpProviderId
,
534 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
);
537 (WSAAPI
*LPNSPREMOVESERVICECLASS
)(
538 IN LPGUID lpProviderId
,
539 IN LPGUID lpServiceClassId
);
542 (WSAAPI
*LPNSPGETSERVICECLASSINFO
)(
543 IN LPGUID lpProviderId
,
544 IN LPDWORD lpdwBufSize
,
545 IN LPWSASERVICECLASSINFOW lpServiceClassInfo
);
548 (WSAAPI
*LPNSPV2STARTUP
)(
549 IN LPGUID lpProviderId
,
550 OUT LPVOID
*ppvClientSessionArg
);
553 (WSAAPI
*LPNSPV2CLEANUP
)(
554 IN LPGUID lpProviderId
,
555 IN LPVOID pvClientSessionArg
);
558 (WSAAPI
*LPNSPV2LOOKUPSERVICEBEGIN
)(
559 IN LPGUID lpProviderId
,
560 IN LPWSAQUERYSET2W lpqsRestrictions
,
561 IN DWORD dwControlFlags
,
562 IN LPVOID lpvClientSessionArg
,
563 OUT LPHANDLE lphLookup
);
566 (WSAAPI
*LPNSPV2LOOKUPSERVICENEXTEX
)(
567 IN HANDLE hAsyncCall
,
569 IN DWORD dwControlFlags
,
570 IN LPDWORD lpdwBufferLength
,
571 OUT LPWSAQUERYSET2W lpqsResults
);
574 (WSAAPI
*LPNSPV2LOOKUPSERVICEEND
)(
578 (WSAAPI
*LPNSPV2SETSERVICEEX
)(
579 IN HANDLE hAsyncCall
,
580 IN LPGUID lpProviderId
,
581 IN LPWSAQUERYSET2W lpqsRegInfo
,
582 IN WSAESETSERVICEOP essOperation
,
583 IN DWORD dwControlFlags
,
584 IN LPVOID lpvClientSessionArg
);
587 (WSAAPI
*LPNSPV2CLIENTSESSIONRUNDOWN
)(
588 IN LPGUID lpProviderId
,
589 IN LPVOID pvClientSessionArg
);
591 /* Service Provider upcall table */
592 typedef struct _WSPUPCALLTABLE
{
593 LPWPUCLOSEEVENT lpWPUCloseEvent
;
594 LPWPUCLOSESOCKETHANDLE lpWPUCloseSocketHandle
;
595 LPWPUCREATEEVENT lpWPUCreateEvent
;
596 LPWPUCREATESOCKETHANDLE lpWPUCreateSocketHandle
;
597 LPWPUFDISSET lpWPUFDIsSet
;
598 LPWPUGETPROVIDERPATH lpWPUGetProviderPath
;
599 LPWPUMODIFYIFSHANDLE lpWPUModifyIFSHandle
;
600 LPWPUPOSTMESSAGE lpWPUPostMessage
;
601 LPWPUQUERYBLOCKINGCALLBACK lpWPUQueryBlockingCallback
;
602 LPWPUQUERYSOCKETHANDLECONTEXT lpWPUQuerySocketHandleContext
;
603 LPWPUQUEUEAPC lpWPUQueueApc
;
604 LPWPURESETEVENT lpWPUResetEvent
;
605 LPWPUSETEVENT lpWPUSetEvent
;
606 LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread
;
607 LPWPUCLOSETHREAD lpWPUCloseThread
;
608 } WSPUPCALLTABLE
, FAR
* LPWSPUPCALLTABLE
;
611 (WSPAPI
*LPWSPSTARTUP
)(
612 IN WORD wVersionRequested
,
613 IN LPWSPDATA lpWSPData
,
614 IN LPWSAPROTOCOL_INFOW lpProtocolInfo
,
615 IN WSPUPCALLTABLE UpcallTable
,
616 OUT LPWSPPROC_TABLE lpProcTable
);
618 #if (_WIN32_WINNT >= 0x0600)
620 #define LSP_SYSTEM 0x80000000
621 #define LSP_INSPECTOR 0x00000001
622 #define LSP_REDIRECTOR 0x00000002
623 #define LSP_PROXY 0x00000004
624 #define LSP_FIREWALL 0x00000008
625 #define LSP_INBOUND_MODIFY 0x00000010
626 #define LSP_OUTBOUND_MODIFY 0x00000020
627 #define LSP_CRYPTO_COMPRESS 0x00000040
628 #define LSP_LOCAL_CACHE 0x00000080
630 typedef enum _WSC_PROVIDER_INFO_TYPE
{
631 ProviderInfoLspCategories
,
633 } WSC_PROVIDER_INFO_TYPE
;
635 typedef struct _WSC_PROVIDER_AUDIT_INFO
{
638 } WSC_PROVIDER_AUDIT_INFO
;
640 #endif /* (_WIN32_WINNT >= 0x0600) */
642 typedef struct _NSP_ROUTINE
{
644 DWORD dwMajorVersion
;
645 DWORD dwMinorVersion
;
646 LPNSPCLEANUP NSPCleanup
;
647 LPNSPLOOKUPSERVICEBEGIN NSPLookupServiceBegin
;
648 LPNSPLOOKUPSERVICENEXT NSPLookupServiceNext
;
649 LPNSPLOOKUPSERVICEEND NSPLookupServiceEnd
;
650 LPNSPSETSERVICE NSPSetService
;
651 LPNSPINSTALLSERVICECLASS NSPInstallServiceClass
;
652 LPNSPREMOVESERVICECLASS NSPRemoveServiceClass
;
653 LPNSPGETSERVICECLASSINFO NSPGetServiceClassInfo
;
655 } NSP_ROUTINE
, *PNSP_ROUTINE
, FAR
* LPNSP_ROUTINE
;
658 (WSAAPI
*LPNSPSTARTUP
)(
659 IN LPGUID lpProviderId
,
660 IN OUT LPNSP_ROUTINE lpnspRoutines
);
662 typedef struct _NSPV2_ROUTINE
{
664 DWORD dwMajorVersion
;
665 DWORD dwMinorVersion
;
666 LPNSPV2STARTUP NSPv2Startup
;
667 LPNSPV2CLEANUP NSPv2Cleanup
;
668 LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin
;
669 LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx
;
670 LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd
;
671 LPNSPV2SETSERVICEEX NSPv2SetServiceEx
;
672 LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown
;
673 } NSPV2_ROUTINE
, *PNSPV2_ROUTINE
, *LPNSPV2_ROUTINE
;
674 typedef const NSPV2_ROUTINE
*PCNSPV2_ROUTINE
, *LPCNSPV2_ROUTINE
;
679 IN WORD wVersionRequested
,
680 IN LPWSPDATA lpWSPData
,
681 IN LPWSAPROTOCOL_INFOW lpProtocolInfo
,
682 IN WSPUPCALLTABLE UpcallTable
,
683 OUT LPWSPPROC_TABLE lpProcTable
);
688 IN LPINT lpiProtocols OPTIONAL
,
689 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer OPTIONAL
,
690 IN OUT LPDWORD lpdwBufferLength
,
693 #if (_WIN32_WINNT >= 0x0501)
697 WPUOpenCurrentThread(
698 OUT LPWSATHREADID lpThreadId
,
704 IN LPWSATHREADID lpThreadId
,
707 #define WSCEnumNameSpaceProviders WSAEnumNameSpaceProvidersW
708 #define LPFN_WSCENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW
713 IN LPGUID lpProviderId
,
714 IN
const WCHAR FAR
*lpszProviderDllPath
,
715 IN
const LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
716 IN DWORD dwNumberOfEntries
,
720 (WSPAPI
*LPWSCUPDATEPROVIDER
)(
721 IN LPGUID lpProviderId
,
722 IN
const WCHAR FAR
*lpszProviderDllPath
,
723 IN
const LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
724 IN DWORD dwNumberOfEntries
,
732 IN LPINT lpiProtocols OPTIONAL
,
733 OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer
,
734 IN OUT LPDWORD lpdwBufferLength
,
739 WSCDeinstallProvider32(
740 IN LPGUID lpProviderId
,
745 WSCInstallProvider64_32(
746 IN LPGUID lpProviderId
,
747 IN
const WCHAR FAR
*lpszProviderDllPath
,
748 IN
const LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
749 IN DWORD dwNumberOfEntries
,
754 WSCGetProviderPath32(
755 IN LPGUID lpProviderId
,
756 OUT WCHAR FAR
*lpszProviderDllPath
,
757 IN OUT LPINT lpProviderDllPathLen
,
763 IN LPGUID lpProviderId
,
764 IN
const WCHAR FAR
*lpszProviderDllPath
,
765 IN
const LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
766 IN DWORD dwNumberOfEntries
,
771 WSCEnumNameSpaceProviders32(
772 IN OUT LPDWORD lpdwBufferLength
,
773 OUT LPWSANAMESPACE_INFOW lpnspBuffer
);
777 WSCInstallNameSpace32(
778 IN LPWSTR lpszIdentifier
,
779 IN LPWSTR lpszPathName
,
780 IN DWORD dwNameSpace
,
782 IN LPGUID lpProviderId
);
786 WSCUnInstallNameSpace32(
787 IN LPGUID lpProviderId
);
791 WSCEnableNSProvider32(
792 IN LPGUID lpProviderId
,
795 #endif /* defined(_WIN64) */
797 #endif /* defined(_WIN32_WINNT >= 0x0501) */
801 WSCDeinstallProvider(
802 IN LPGUID lpProviderId
,
808 IN LPGUID lpProviderId
,
809 IN
const WCHAR FAR
*lpszProviderDllPath
,
810 IN
const LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
811 IN DWORD dwNumberOfEntries
,
817 IN LPGUID lpProviderId
,
818 OUT WCHAR FAR
*lpszProviderDllPath
,
819 IN OUT LPINT lpProviderDllPathLen
,
822 #if (_WIN32_WINNT < 0x0600)
826 WSCInstallQOSTemplate(
827 IN
const LPGUID Guid
,
832 (WSPAPI
*LPWSCINSTALLQOSTEMPLATE
)(
833 IN
const LPGUID Guid
,
839 WSCRemoveQOSTemplate(
840 IN
const LPGUID Guid
,
841 IN LPWSABUF QosName
);
844 (WSPAPI
*LPWSCREMOVEQOSTEMPLATE
)(
845 IN
const LPGUID Guid
,
846 IN LPWSABUF QosName
);
848 #endif /* (_WIN32_WINNT < 0x0600) */
850 #if(_WIN32_WINNT >= 0x0600)
855 IN LPGUID lpProviderId
,
856 IN WSC_PROVIDER_INFO_TYPE InfoType
,
865 IN LPGUID lpProviderId
,
866 IN WSC_PROVIDER_INFO_TYPE InfoType
,
874 WSCSetApplicationCategory(
877 IN LPCWSTR Extra OPTIONAL
,
878 IN DWORD ExtraLength
,
879 IN DWORD PermittedLspCategories
,
880 OUT DWORD
*pPrevPermLspCat OPTIONAL
,
885 WSCGetApplicationCategory(
888 IN LPCWSTR Extra OPTIONAL
,
889 IN DWORD ExtraLength
,
890 OUT DWORD
*pPermittedLspCategories
,
893 #define WSCEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW
894 #define LPFN_WSCENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW
898 WSCInstallNameSpaceEx(
899 IN LPWSTR lpszIdentifier
,
900 IN LPWSTR lpszPathName
,
901 IN DWORD dwNameSpace
,
903 IN LPGUID lpProviderId
,
904 IN LPBLOB lpProviderSpecific
);
908 WSAAdvertiseProvider(
909 IN
const GUID
*puuidProviderId
,
910 IN
const LPCNSPV2_ROUTINE pNSPv2Routine
);
914 WSAUnadvertiseProvider(
915 IN
const GUID
*puuidProviderId
);
919 WSAProviderCompleteAsyncCall(
920 IN HANDLE hAsyncCall
,
927 WSCSetProviderInfo32(
928 IN LPGUID lpProviderId
,
929 IN WSC_PROVIDER_INFO_TYPE InfoType
,
937 WSCGetProviderInfo32(
938 IN LPGUID lpProviderId
,
939 IN WSC_PROVIDER_INFO_TYPE InfoType
,
941 IN OUT
size_t *InfoSize
,
947 WSCEnumNameSpaceProvidersEx32(
948 IN OUT LPDWORD lpdwBufferLength
,
949 OUT LPWSANAMESPACE_INFOEXW lpnspBuffer
);
953 WSCInstallNameSpaceEx32(
954 IN LPWSTR lpszIdentifier
,
955 IN LPWSTR lpszPathName
,
956 IN DWORD dwNameSpace
,
958 IN LPGUID lpProviderId
,
959 IN LPBLOB lpProviderSpecific
);
961 #endif /* (_WIN64) */
966 WSCInstallProviderAndChains64_32(
970 WSCInstallProviderAndChains(
972 IN LPGUID lpProviderId
,
973 IN
const LPWSTR lpszProviderDllPath
,
975 IN
const LPWSTR lpszProviderDllPath32
,
977 IN
const LPWSTR lpszLspName
,
978 IN DWORD dwServiceFlags
,
979 IN OUT LPWSAPROTOCOL_INFOW lpProtocolInfoList
,
980 IN DWORD dwNumberOfEntries
,
981 OUT LPDWORD lpdwCatalogEntryId OPTIONAL
,
984 #endif /* (_WIN32_WINNT >= 0x0600) */
994 WPUCloseSocketHandle(
1005 WPUCreateSocketHandle(
1006 IN DWORD dwCatalogEntryId
,
1007 IN DWORD_PTR dwContext
,
1014 IN fd_set FAR
*fdset
);
1019 IN LPGUID lpProviderId
,
1020 OUT WCHAR FAR
*lpszProviderDllPath
,
1021 IN OUT LPINT lpProviderDllPathLen
,
1027 IN DWORD dwCatalogEntryId
,
1028 IN SOCKET ProposedHandle
,
1041 WPUQueryBlockingCallback(
1042 IN DWORD dwCatalogEntryId
,
1043 OUT LPBLOCKINGCALLBACK FAR
*lplpfnCallback
,
1044 OUT PDWORD_PTR lpdwContext
,
1049 WPUQuerySocketHandleContext(
1051 OUT PDWORD_PTR lpContext
,
1057 IN LPWSATHREADID lpThreadId
,
1058 IN LPWSAUSERAPC lpfnUserApc
,
1059 IN DWORD_PTR dwContext
,
1076 WPUCompleteOverlappedRequest(
1078 IN OUT LPWSAOVERLAPPED lpOverlapped
,
1080 IN DWORD cbTransferred
,
1085 WSCInstallNameSpace(
1086 IN LPWSTR lpszIdentifier
,
1087 IN LPWSTR lpszPathName
,
1088 IN DWORD dwNameSpace
,
1090 IN LPGUID lpProviderId
);
1094 WSCUnInstallNameSpace(
1095 IN LPGUID lpProviderId
);
1099 WSCEnableNSProvider(
1100 IN LPGUID lpProviderId
,
1106 IN LPGUID lpProviderId
,
1107 IN OUT LPNSP_ROUTINE lpnspRoutines
);
1109 #if !defined(_WIN64)
1110 #include <poppack.h>