mirror of
https://github.com/reactos/reactos.git
synced 2024-11-05 22:26:39 +00:00
420c0360ac
CORE-12596
1131 lines
26 KiB
C
1131 lines
26 KiB
C
/*
|
|
* ws2spi.h
|
|
*
|
|
* Winsock 2 Service Provider interface.
|
|
*
|
|
*
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
*
|
|
* This source code is offered for use in the public domain. You may
|
|
* use, modify or distribute it freely.
|
|
*
|
|
* This code is distributed in the hope that it will be useful but
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
* DISCLAIMED. This includes but is not limited to warranties of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#define _WS2SPI_H
|
|
|
|
#ifndef _WINSOCK2API_
|
|
#include <winsock2.h>
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if !defined(_WIN64)
|
|
#include <pshpack4.h>
|
|
#endif
|
|
|
|
#define WSPDESCRIPTION_LEN 255
|
|
|
|
#define WSS_OPERATION_IN_PROGRESS 0x00000103L
|
|
|
|
#define WSPAPI WSAAPI
|
|
|
|
typedef struct _WSATHREADID {
|
|
HANDLE ThreadHandle;
|
|
DWORD_PTR Reserved;
|
|
} WSATHREADID, FAR *LPWSATHREADID;
|
|
|
|
typedef struct WSPData {
|
|
WORD wVersion;
|
|
WORD wHighVersion;
|
|
WCHAR szDescription[WSPDESCRIPTION_LEN+1];
|
|
} WSPDATA, FAR *LPWSPDATA;
|
|
|
|
typedef BOOL
|
|
(CALLBACK FAR *LPBLOCKINGCALLBACK)(
|
|
DWORD_PTR dwContext);
|
|
|
|
typedef
|
|
_Must_inspect_result_
|
|
SOCKET
|
|
(WSPAPI *LPWSPACCEPT)(
|
|
_In_ SOCKET s,
|
|
_Out_writes_bytes_to_opt_(*addrlen, *addrlen) struct sockaddr FAR *addr,
|
|
_Inout_opt_ LPINT addrlen,
|
|
_In_opt_ LPCONDITIONPROC lpfnCondition,
|
|
_In_opt_ DWORD_PTR dwCallbackData,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef VOID
|
|
(CALLBACK FAR *LPWSAUSERAPC)(
|
|
DWORD_PTR dwContext);
|
|
|
|
typedef INT
|
|
(WSPAPI *LPWSPADDRESSTOSTRING)(
|
|
_In_reads_bytes_(dwAddressLength) LPSOCKADDR lpsaAddress,
|
|
_In_ DWORD dwAddressLength,
|
|
_In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
|
_Out_writes_to_(*lpdwAddressStringLength, *lpdwAddressStringLength) LPWSTR lpszAddressString,
|
|
_Inout_ LPDWORD lpdwAddressStringLength,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPASYNCSELECT)(
|
|
_In_ SOCKET s,
|
|
_In_ HWND hWnd,
|
|
_In_ unsigned int wMsg,
|
|
_In_ long lEvent,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPBIND)(
|
|
_In_ SOCKET s,
|
|
_In_reads_bytes_(namelen) const struct sockaddr FAR *name,
|
|
_In_ int namelen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPCANCELBLOCKINGCALL)(
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPCLEANUP)(
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPCLOSESOCKET)(
|
|
_In_ SOCKET s,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPCONNECT)(
|
|
_In_ SOCKET s,
|
|
_In_reads_bytes_(namelen) const struct sockaddr FAR *name,
|
|
_In_ int namelen,
|
|
_In_opt_ LPWSABUF lpCallerData,
|
|
_Out_opt_ LPWSABUF lpCalleeData,
|
|
_In_opt_ LPQOS lpSQOS,
|
|
_In_opt_ LPQOS lpGQOS,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPDUPLICATESOCKET)(
|
|
_In_ SOCKET s,
|
|
_In_ DWORD dwProcessId,
|
|
_Out_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPENUMNETWORKEVENTS)(
|
|
_In_ SOCKET s,
|
|
_In_ WSAEVENT hEventObject,
|
|
_Out_ LPWSANETWORKEVENTS lpNetworkEvents,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPEVENTSELECT)(
|
|
_In_ SOCKET s,
|
|
_In_opt_ WSAEVENT hEventObject,
|
|
_In_ long lNetworkEvents,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef BOOL
|
|
(WSPAPI *LPWSPGETOVERLAPPEDRESULT)(
|
|
_In_ SOCKET s,
|
|
_In_ LPWSAOVERLAPPED lpOverlapped,
|
|
_Out_ LPDWORD lpcbTransfer,
|
|
_In_ BOOL fWait,
|
|
_Out_ LPDWORD lpdwFlags,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPGETPEERNAME)(
|
|
_In_ SOCKET s,
|
|
_Out_writes_bytes_to_(*namelen, *namelen) struct sockaddr FAR *name,
|
|
_Inout_ LPINT namelen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPGETSOCKNAME)(
|
|
_In_ SOCKET s,
|
|
_Out_writes_bytes_to_(*namelen, *namelen) struct sockaddr FAR *name,
|
|
_Inout_ LPINT namelen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPGETSOCKOPT)(
|
|
_In_ SOCKET s,
|
|
_In_ int level,
|
|
_In_ int optname,
|
|
_Out_writes_bytes_(*optlen) char FAR *optval,
|
|
_Inout_ LPINT optlen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef BOOL
|
|
(WSPAPI *LPWSPGETQOSBYNAME)(
|
|
_In_ SOCKET s,
|
|
_In_ LPWSABUF lpQOSName,
|
|
_Out_ LPQOS lpQOS,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPIOCTL)(
|
|
_In_ SOCKET s,
|
|
_In_ DWORD dwIoControlCode,
|
|
_In_reads_bytes_opt_(cbInBuffer) LPVOID lpvInBuffer,
|
|
_In_ DWORD cbInBuffer,
|
|
_Out_writes_bytes_to_opt_(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer,
|
|
_In_ DWORD cbOutBuffer,
|
|
_Out_ LPDWORD lpcbBytesReturned,
|
|
_Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
|
|
_In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
|
_In_opt_ LPWSATHREADID lpThreadId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef SOCKET
|
|
(WSPAPI *LPWSPJOINLEAF)(
|
|
_In_ SOCKET s,
|
|
_In_reads_bytes_(namelen) const struct sockaddr FAR *name,
|
|
_In_ int namelen,
|
|
_In_opt_ LPWSABUF lpCallerData,
|
|
_Out_opt_ LPWSABUF lpCalleeData,
|
|
_In_opt_ LPQOS lpSQOS,
|
|
_In_opt_ LPQOS lpGQOS,
|
|
_In_ DWORD dwFlags,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPLISTEN)(
|
|
_In_ SOCKET s,
|
|
_In_ int backlog,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPRECV)(
|
|
_In_ SOCKET s,
|
|
_In_reads_(dwBufferCount) LPWSABUF lpBuffers,
|
|
_In_ DWORD dwBufferCount,
|
|
_Out_opt_ LPDWORD lpNumberOfBytesRecvd,
|
|
_Inout_ LPDWORD lpFlags,
|
|
_Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
|
|
_In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
|
_In_opt_ LPWSATHREADID lpThreadId,
|
|
_In_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPRECVDISCONNECT)(
|
|
_In_ SOCKET s,
|
|
_In_opt_ LPWSABUF lpInboundDisconnectData,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPRECVFROM)(
|
|
_In_ SOCKET s,
|
|
_In_reads_(dwBufferCount) LPWSABUF lpBuffers,
|
|
_In_ DWORD dwBufferCount,
|
|
_Out_opt_ LPDWORD lpNumberOfBytesRecvd,
|
|
_Inout_ LPDWORD lpFlags,
|
|
_Out_writes_bytes_to_opt_(*lpFromlen, *lpFromlen) struct sockaddr FAR *lpFrom,
|
|
_Inout_opt_ LPINT lpFromlen,
|
|
_Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
|
|
_In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
|
_In_opt_ LPWSATHREADID lpThreadId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPSELECT)(
|
|
_In_ int nfds,
|
|
_Inout_opt_ fd_set FAR *readfds,
|
|
_Inout_opt_ fd_set FAR *writefds,
|
|
_Inout_opt_ fd_set FAR *exceptfds,
|
|
_In_opt_ const struct timeval FAR *timeout,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPSEND)(
|
|
_In_ SOCKET s,
|
|
_In_reads_(dwBufferCount) LPWSABUF lpBuffers,
|
|
_In_ DWORD dwBufferCount,
|
|
_Out_opt_ LPDWORD lpNumberOfBytesSent,
|
|
_In_ DWORD dwFlags,
|
|
_Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
|
|
_In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
|
_In_opt_ LPWSATHREADID lpThreadId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPSENDDISCONNECT)(
|
|
_In_ SOCKET s,
|
|
_In_opt_ LPWSABUF lpOutboundDisconnectData,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPSENDTO)(
|
|
_In_ SOCKET s,
|
|
_In_reads_(dwBufferCount) LPWSABUF lpBuffers,
|
|
_In_ DWORD dwBufferCount,
|
|
_Out_opt_ LPDWORD lpNumberOfBytesSent,
|
|
_In_ DWORD dwFlags,
|
|
_In_reads_bytes_opt_(iTolen) const struct sockaddr FAR *lpTo,
|
|
_In_ int iTolen,
|
|
_Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
|
|
_In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
|
_In_opt_ LPWSATHREADID lpThreadId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPSETSOCKOPT)(
|
|
_In_ SOCKET s,
|
|
_In_ int level,
|
|
_In_ int optname,
|
|
_In_reads_bytes_opt_(optlen) const char FAR *optval,
|
|
_In_ int optlen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSPSHUTDOWN)(
|
|
_In_ SOCKET s,
|
|
_In_ int how,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef
|
|
_Must_inspect_result_
|
|
SOCKET
|
|
(WSPAPI *LPWSPSOCKET)(
|
|
_In_ int af,
|
|
_In_ int type,
|
|
_In_ int protocol,
|
|
_In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
|
_In_ GROUP g,
|
|
_In_ DWORD dwFlags,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef INT
|
|
(WSPAPI *LPWSPSTRINGTOADDRESS)(
|
|
_In_ LPWSTR AddressString,
|
|
_In_ INT AddressFamily,
|
|
_In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
|
_Out_writes_bytes_to_(*lpAddressLength, *lpAddressLength) LPSOCKADDR lpAddress,
|
|
_Inout_ LPINT lpAddressLength,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef BOOL
|
|
(WSPAPI *LPWPUCLOSEEVENT)(
|
|
_In_ WSAEVENT hEvent,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUCLOSESOCKETHANDLE)(
|
|
_In_ SOCKET s,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef WSAEVENT
|
|
(WSPAPI *LPWPUCREATEEVENT)(
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef
|
|
_Must_inspect_result_
|
|
SOCKET
|
|
(WSPAPI *LPWPUCREATESOCKETHANDLE)(
|
|
_In_ DWORD dwCatalogEntryId,
|
|
_In_ DWORD_PTR dwContext,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUFDISSET)(
|
|
_In_ SOCKET s,
|
|
_In_ fd_set FAR *fdset);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUGETPROVIDERPATH)(
|
|
_In_ LPGUID lpProviderId,
|
|
_Out_writes_(*lpProviderDllPathLen) WCHAR FAR *lpszProviderDllPath,
|
|
_Inout_ LPINT lpProviderDllPathLen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef SOCKET
|
|
(WSPAPI *LPWPUMODIFYIFSHANDLE)(
|
|
_In_ DWORD dwCatalogEntryId,
|
|
_In_ SOCKET ProposedHandle,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef BOOL
|
|
(WSPAPI *LPWPUPOSTMESSAGE)(
|
|
_In_ HWND hWnd,
|
|
_In_ UINT Msg,
|
|
_In_ WPARAM wParam,
|
|
_In_ LPARAM lParam);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUQUERYBLOCKINGCALLBACK)(
|
|
_In_ DWORD dwCatalogEntryId,
|
|
_Out_ LPBLOCKINGCALLBACK FAR *lplpfnCallback,
|
|
_Out_ PDWORD_PTR lpdwContext,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUQUERYSOCKETHANDLECONTEXT)(
|
|
_In_ SOCKET s,
|
|
_Out_ PDWORD_PTR lpContext,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUQUEUEAPC)(
|
|
_In_ LPWSATHREADID lpThreadId,
|
|
_In_ LPWSAUSERAPC lpfnUserApc,
|
|
_In_ DWORD_PTR dwContext,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef BOOL
|
|
(WSPAPI *LPWPURESETEVENT)(
|
|
_In_ WSAEVENT hEvent,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef BOOL
|
|
(WSPAPI *LPWPUSETEVENT)(
|
|
_In_ WSAEVENT hEvent,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUOPENCURRENTTHREAD)(
|
|
_Out_ LPWSATHREADID lpThreadId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUCLOSETHREAD)(
|
|
_In_ LPWSATHREADID lpThreadId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWPUCOMPLETEOVERLAPPEDREQUEST)(
|
|
_In_ SOCKET s,
|
|
_Inout_ LPWSAOVERLAPPED lpOverlapped,
|
|
_In_ DWORD dwError,
|
|
_In_ DWORD cbTransferred,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSCENUMPROTOCOLS)(
|
|
_In_opt_ LPINT lpiProtocols,
|
|
_Out_writes_bytes_to_opt_(*lpdwBufferLength, *lpdwBufferlength) LPWSAPROTOCOL_INFOW lpProtocolBuffer,
|
|
_Inout_ LPDWORD lpdwBufferLength,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSCDEINSTALLPROVIDER)(
|
|
_In_ LPGUID lpProviderId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSCINSTALLPROVIDER)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_z_ const WCHAR FAR *lpszProviderDllPath,
|
|
_In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
|
|
_In_ DWORD dwNumberOfEntries,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSCGETPROVIDERPATH)(
|
|
_In_ LPGUID lpProviderId,
|
|
_Out_writes_to_(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR *lpszProviderDllPath,
|
|
_Inout_ LPINT lpProviderDllPathLen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef INT
|
|
(WSPAPI *LPWSCINSTALLNAMESPACE)(
|
|
_In_ LPWSTR lpszIdentifier,
|
|
_In_ LPWSTR lpszPathName,
|
|
_In_ DWORD dwNameSpace,
|
|
_In_ DWORD dwVersion,
|
|
_In_ LPGUID lpProviderId);
|
|
|
|
typedef INT
|
|
(WSPAPI *LPWSCUNINSTALLNAMESPACE)(
|
|
_In_ LPGUID lpProviderId);
|
|
|
|
typedef INT
|
|
(WSPAPI *LPWSCENABLENSPROVIDER)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ BOOL fEnable);
|
|
|
|
/* Service provider procedure table */
|
|
typedef struct _WSPPROC_TABLE {
|
|
LPWSPACCEPT lpWSPAccept;
|
|
LPWSPADDRESSTOSTRING lpWSPAddressToString;
|
|
LPWSPASYNCSELECT lpWSPAsyncSelect;
|
|
LPWSPBIND lpWSPBind;
|
|
LPWSPCANCELBLOCKINGCALL lpWSPCancelBlockingCall;
|
|
LPWSPCLEANUP lpWSPCleanup;
|
|
LPWSPCLOSESOCKET lpWSPCloseSocket;
|
|
LPWSPCONNECT lpWSPConnect;
|
|
LPWSPDUPLICATESOCKET lpWSPDuplicateSocket;
|
|
LPWSPENUMNETWORKEVENTS lpWSPEnumNetworkEvents;
|
|
LPWSPEVENTSELECT lpWSPEventSelect;
|
|
LPWSPGETOVERLAPPEDRESULT lpWSPGetOverlappedResult;
|
|
LPWSPGETPEERNAME lpWSPGetPeerName;
|
|
LPWSPGETSOCKNAME lpWSPGetSockName;
|
|
LPWSPGETSOCKOPT lpWSPGetSockOpt;
|
|
LPWSPGETQOSBYNAME lpWSPGetQOSByName;
|
|
LPWSPIOCTL lpWSPIoctl;
|
|
LPWSPJOINLEAF lpWSPJoinLeaf;
|
|
LPWSPLISTEN lpWSPListen;
|
|
LPWSPRECV lpWSPRecv;
|
|
LPWSPRECVDISCONNECT lpWSPRecvDisconnect;
|
|
LPWSPRECVFROM lpWSPRecvFrom;
|
|
LPWSPSELECT lpWSPSelect;
|
|
LPWSPSEND lpWSPSend;
|
|
LPWSPSENDDISCONNECT lpWSPSendDisconnect;
|
|
LPWSPSENDTO lpWSPSendTo;
|
|
LPWSPSETSOCKOPT lpWSPSetSockOpt;
|
|
LPWSPSHUTDOWN lpWSPShutdown;
|
|
LPWSPSOCKET lpWSPSocket;
|
|
LPWSPSTRINGTOADDRESS lpWSPStringToAddress;
|
|
} WSPPROC_TABLE, FAR* LPWSPPROC_TABLE;
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPCLEANUP)(
|
|
_In_ LPGUID lpProviderId);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPLOOKUPSERVICEBEGIN)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPWSAQUERYSETW lpqsRestrictions,
|
|
_In_ LPWSASERVICECLASSINFOW lpServiceClassInfo,
|
|
_In_ DWORD dwControlFlags,
|
|
_Out_ LPHANDLE lphLookup);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPLOOKUPSERVICENEXT)(
|
|
_In_ HANDLE hLookup,
|
|
_In_ DWORD dwControlFlags,
|
|
_Inout_ LPDWORD lpdwBufferLength,
|
|
_Out_writes_bytes_to_(*lpdwBufferLength, *lpdwBufferLength) LPWSAQUERYSETW lpqsResults);
|
|
|
|
#if(_WIN32_WINNT >= 0x0501)
|
|
typedef INT
|
|
(WSAAPI *LPNSPIOCTL)(
|
|
_In_ HANDLE hLookup,
|
|
_In_ DWORD dwControlCode,
|
|
_In_reads_bytes_(cbInBuffer) LPVOID lpvInBuffer,
|
|
_In_ DWORD cbInBuffer,
|
|
_Out_writes_bytes_to_(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer,
|
|
_In_ DWORD cbOutBuffer,
|
|
_Out_ LPDWORD lpcbBytesReturned,
|
|
_In_opt_ LPWSACOMPLETION lpCompletion,
|
|
_In_ LPWSATHREADID lpThreadId);
|
|
#endif
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPLOOKUPSERVICEEND)(
|
|
_In_ HANDLE hLookup);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPSETSERVICE)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPWSASERVICECLASSINFOW lpServiceClassInfo,
|
|
_In_ LPWSAQUERYSETW lpqsRegInfo,
|
|
_In_ WSAESETSERVICEOP essOperation,
|
|
_In_ DWORD dwControlFlags);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPINSTALLSERVICECLASS)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPWSASERVICECLASSINFOW lpServiceClassInfo);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPREMOVESERVICECLASS)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPGUID lpServiceClassId);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPGETSERVICECLASSINFO)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPDWORD lpdwBufSize,
|
|
_In_ LPWSASERVICECLASSINFOW lpServiceClassInfo);
|
|
|
|
typedef
|
|
_Must_inspect_result_
|
|
INT
|
|
(WSAAPI *LPNSPV2STARTUP)(
|
|
_In_ LPGUID lpProviderId,
|
|
_Outptr_ LPVOID *ppvClientSessionArg);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPV2CLEANUP)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPVOID pvClientSessionArg);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPV2LOOKUPSERVICEBEGIN)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPWSAQUERYSET2W lpqsRestrictions,
|
|
_In_ DWORD dwControlFlags,
|
|
_In_ LPVOID lpvClientSessionArg,
|
|
_Out_ LPHANDLE lphLookup);
|
|
|
|
typedef VOID
|
|
(WSAAPI *LPNSPV2LOOKUPSERVICENEXTEX)(
|
|
_In_ HANDLE hAsyncCall,
|
|
_In_ HANDLE hLookup,
|
|
_In_ DWORD dwControlFlags,
|
|
_In_ LPDWORD lpdwBufferLength,
|
|
_Out_ LPWSAQUERYSET2W lpqsResults);
|
|
|
|
typedef INT
|
|
(WSAAPI *LPNSPV2LOOKUPSERVICEEND)(
|
|
_In_ HANDLE hLookup);
|
|
|
|
typedef VOID
|
|
(WSAAPI *LPNSPV2SETSERVICEEX)(
|
|
_In_ HANDLE hAsyncCall,
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPWSAQUERYSET2W lpqsRegInfo,
|
|
_In_ WSAESETSERVICEOP essOperation,
|
|
_In_ DWORD dwControlFlags,
|
|
_In_ LPVOID lpvClientSessionArg);
|
|
|
|
typedef VOID
|
|
(WSAAPI *LPNSPV2CLIENTSESSIONRUNDOWN)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPVOID pvClientSessionArg);
|
|
|
|
/* Service Provider upcall table */
|
|
typedef struct _WSPUPCALLTABLE {
|
|
LPWPUCLOSEEVENT lpWPUCloseEvent;
|
|
LPWPUCLOSESOCKETHANDLE lpWPUCloseSocketHandle;
|
|
LPWPUCREATEEVENT lpWPUCreateEvent;
|
|
LPWPUCREATESOCKETHANDLE lpWPUCreateSocketHandle;
|
|
LPWPUFDISSET lpWPUFDIsSet;
|
|
LPWPUGETPROVIDERPATH lpWPUGetProviderPath;
|
|
LPWPUMODIFYIFSHANDLE lpWPUModifyIFSHandle;
|
|
LPWPUPOSTMESSAGE lpWPUPostMessage;
|
|
LPWPUQUERYBLOCKINGCALLBACK lpWPUQueryBlockingCallback;
|
|
LPWPUQUERYSOCKETHANDLECONTEXT lpWPUQuerySocketHandleContext;
|
|
LPWPUQUEUEAPC lpWPUQueueApc;
|
|
LPWPURESETEVENT lpWPUResetEvent;
|
|
LPWPUSETEVENT lpWPUSetEvent;
|
|
LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread;
|
|
LPWPUCLOSETHREAD lpWPUCloseThread;
|
|
} WSPUPCALLTABLE, FAR* LPWSPUPCALLTABLE;
|
|
|
|
typedef
|
|
_Must_inspect_result_
|
|
int
|
|
(WSPAPI *LPWSPSTARTUP)(
|
|
_In_ WORD wVersionRequested,
|
|
_In_ LPWSPDATA lpWSPData,
|
|
_In_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
|
_In_ WSPUPCALLTABLE UpcallTable,
|
|
_Out_ LPWSPPROC_TABLE lpProcTable);
|
|
|
|
#if (_WIN32_WINNT >= 0x0600)
|
|
|
|
#define LSP_SYSTEM 0x80000000
|
|
#define LSP_INSPECTOR 0x00000001
|
|
#define LSP_REDIRECTOR 0x00000002
|
|
#define LSP_PROXY 0x00000004
|
|
#define LSP_FIREWALL 0x00000008
|
|
#define LSP_INBOUND_MODIFY 0x00000010
|
|
#define LSP_OUTBOUND_MODIFY 0x00000020
|
|
#define LSP_CRYPTO_COMPRESS 0x00000040
|
|
#define LSP_LOCAL_CACHE 0x00000080
|
|
|
|
typedef enum _WSC_PROVIDER_INFO_TYPE {
|
|
ProviderInfoLspCategories,
|
|
ProviderInfoAudit
|
|
} WSC_PROVIDER_INFO_TYPE ;
|
|
|
|
typedef struct _WSC_PROVIDER_AUDIT_INFO {
|
|
DWORD RecordSize;
|
|
PVOID Reserved;
|
|
} WSC_PROVIDER_AUDIT_INFO;
|
|
|
|
#endif /* (_WIN32_WINNT >= 0x0600) */
|
|
|
|
typedef struct _NSP_ROUTINE {
|
|
DWORD cbSize;
|
|
DWORD dwMajorVersion;
|
|
DWORD dwMinorVersion;
|
|
LPNSPCLEANUP NSPCleanup;
|
|
LPNSPLOOKUPSERVICEBEGIN NSPLookupServiceBegin;
|
|
LPNSPLOOKUPSERVICENEXT NSPLookupServiceNext;
|
|
LPNSPLOOKUPSERVICEEND NSPLookupServiceEnd;
|
|
LPNSPSETSERVICE NSPSetService;
|
|
LPNSPINSTALLSERVICECLASS NSPInstallServiceClass;
|
|
LPNSPREMOVESERVICECLASS NSPRemoveServiceClass;
|
|
LPNSPGETSERVICECLASSINFO NSPGetServiceClassInfo;
|
|
LPNSPIOCTL NSPIoctl;
|
|
} NSP_ROUTINE, *PNSP_ROUTINE, FAR* LPNSP_ROUTINE;
|
|
|
|
typedef
|
|
_Must_inspect_result_
|
|
INT
|
|
(WSAAPI *LPNSPSTARTUP)(
|
|
_In_ LPGUID lpProviderId,
|
|
_Inout_ LPNSP_ROUTINE lpnspRoutines);
|
|
|
|
typedef struct _NSPV2_ROUTINE {
|
|
DWORD cbSize;
|
|
DWORD dwMajorVersion;
|
|
DWORD dwMinorVersion;
|
|
LPNSPV2STARTUP NSPv2Startup;
|
|
LPNSPV2CLEANUP NSPv2Cleanup;
|
|
LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin;
|
|
LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx;
|
|
LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd;
|
|
LPNSPV2SETSERVICEEX NSPv2SetServiceEx;
|
|
LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown;
|
|
} NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPNSPV2_ROUTINE;
|
|
typedef const NSPV2_ROUTINE *PCNSPV2_ROUTINE, *LPCNSPV2_ROUTINE;
|
|
|
|
_Must_inspect_result_
|
|
int
|
|
WSPAPI
|
|
WSPStartup(
|
|
_In_ WORD wVersionRequested,
|
|
_In_ LPWSPDATA lpWSPData,
|
|
_In_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
|
_In_ WSPUPCALLTABLE UpcallTable,
|
|
_Out_ LPWSPPROC_TABLE lpProcTable);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCEnumProtocols(
|
|
_In_opt_ LPINT lpiProtocols,
|
|
_Out_writes_bytes_to_opt_(*lpdwBufferLength, *lpdwBufferLength) LPWSAPROTOCOL_INFOW lpProtocolBuffer,
|
|
_Inout_ LPDWORD lpdwBufferLength,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
#if (_WIN32_WINNT >= 0x0501)
|
|
|
|
int
|
|
WSPAPI
|
|
WPUOpenCurrentThread(
|
|
_Out_ LPWSATHREADID lpThreadId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WPUCloseThread(
|
|
_In_ LPWSATHREADID lpThreadId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
#define WSCEnumNameSpaceProviders WSAEnumNameSpaceProvidersW
|
|
#define LPFN_WSCENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW
|
|
|
|
int
|
|
WSPAPI
|
|
WSCUpdateProvider(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_z_ const WCHAR FAR *lpszProviderDllPath,
|
|
_In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
|
|
_In_ DWORD dwNumberOfEntries,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSCUPDATEPROVIDER)(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_z_ const WCHAR FAR *lpszProviderDllPath,
|
|
_In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
|
|
_In_ DWORD dwNumberOfEntries,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
#if defined(_WIN64)
|
|
|
|
int
|
|
WSPAPI
|
|
WSCEnumProtocols32(
|
|
_In_opt_ LPINT lpiProtocols,
|
|
_Out_writes_bytes_(*lpdwBufferLength) LPWSAPROTOCOL_INFOW lpProtocolBuffer,
|
|
_Inout_ LPDWORD lpdwBufferLength,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCDeinstallProvider32(
|
|
_In_ LPGUID lpProviderId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCInstallProvider64_32(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_z_ const WCHAR FAR *lpszProviderDllPath,
|
|
_In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
|
|
_In_ DWORD dwNumberOfEntries,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
_Success_(return == 0)
|
|
int
|
|
WSPAPI
|
|
WSCGetProviderPath32(
|
|
_In_ LPGUID lpProviderId,
|
|
_Out_writes_to_(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR *lpszProviderDllPath,
|
|
_Inout_ LPINT lpProviderDllPathLen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCUpdateProvider32(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_z_ const WCHAR FAR *lpszProviderDllPath,
|
|
_In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
|
|
_In_ DWORD dwNumberOfEntries,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
INT
|
|
WSAAPI
|
|
WSCEnumNameSpaceProviders32(
|
|
_Inout_ LPDWORD lpdwBufferLength,
|
|
_Out_writes_bytes_(*lpdwBufferLength) LPWSANAMESPACE_INFOW lpnspBuffer);
|
|
|
|
INT
|
|
WSPAPI
|
|
WSCInstallNameSpace32(
|
|
_In_ LPWSTR lpszIdentifier,
|
|
_In_ LPWSTR lpszPathName,
|
|
_In_ DWORD dwNameSpace,
|
|
_In_ DWORD dwVersion,
|
|
_In_ LPGUID lpProviderId);
|
|
|
|
INT
|
|
WSPAPI
|
|
WSCUnInstallNameSpace32(
|
|
_In_ LPGUID lpProviderId);
|
|
|
|
INT
|
|
WSPAPI
|
|
WSCEnableNSProvider32(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ BOOL fEnable);
|
|
|
|
#endif /* defined(_WIN64) */
|
|
|
|
#endif /* defined(_WIN32_WINNT >= 0x0501) */
|
|
|
|
int
|
|
WSPAPI
|
|
WSCDeinstallProvider(
|
|
_In_ LPGUID lpProviderId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCInstallProvider(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_z_ const WCHAR FAR *lpszProviderDllPath,
|
|
_In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
|
|
_In_ DWORD dwNumberOfEntries,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCGetProviderPath(
|
|
_In_ LPGUID lpProviderId,
|
|
_Out_writes_to_(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR *lpszProviderDllPath,
|
|
_Inout_ LPINT lpProviderDllPathLen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
#if (_WIN32_WINNT < 0x0600)
|
|
|
|
int
|
|
WSPAPI
|
|
WSCInstallQOSTemplate(
|
|
_In_ const LPGUID Guid,
|
|
_In_ LPWSABUF QosName,
|
|
_In_ LPQOS Qos);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSCINSTALLQOSTEMPLATE)(
|
|
_In_ const LPGUID Guid,
|
|
_In_ LPWSABUF QosName,
|
|
_In_ LPQOS Qos);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCRemoveQOSTemplate(
|
|
_In_ const LPGUID Guid,
|
|
_In_ LPWSABUF QosName);
|
|
|
|
typedef int
|
|
(WSPAPI *LPWSCREMOVEQOSTEMPLATE)(
|
|
_In_ const LPGUID Guid,
|
|
_In_ LPWSABUF QosName);
|
|
|
|
#endif /* (_WIN32_WINNT < 0x0600) */
|
|
|
|
#if(_WIN32_WINNT >= 0x0600)
|
|
|
|
int
|
|
WSPAPI
|
|
WSCSetProviderInfo(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ WSC_PROVIDER_INFO_TYPE InfoType,
|
|
_In_reads_bytes_(InfoSize) PBYTE Info,
|
|
_In_ size_t InfoSize,
|
|
_In_ DWORD Flags,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCGetProviderInfo(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ WSC_PROVIDER_INFO_TYPE InfoType,
|
|
_Out_writes_bytes_to_(*InfoSize, *InfoSize) PBYTE Info,
|
|
_Inout_ size_t *InfoSize,
|
|
_In_ DWORD Flags,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCSetApplicationCategory(
|
|
_In_reads_(PathLength) LPCWSTR Path,
|
|
_In_ DWORD PathLength,
|
|
_In_reads_opt_(ExtraLength) LPCWSTR Extra,
|
|
_In_ DWORD ExtraLength,
|
|
_In_ DWORD PermittedLspCategories,
|
|
_Out_opt_ DWORD *pPrevPermLspCat,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCGetApplicationCategory(
|
|
_In_reads_(PathLength) LPCWSTR Path,
|
|
_In_ DWORD PathLength,
|
|
_In_reads_opt_(ExtraLength) LPCWSTR Extra,
|
|
_In_ DWORD ExtraLength,
|
|
_Out_ DWORD *pPermittedLspCategories,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
#define WSCEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW
|
|
#define LPFN_WSCENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW
|
|
|
|
INT
|
|
WSPAPI
|
|
WSCInstallNameSpaceEx(
|
|
_In_ LPWSTR lpszIdentifier,
|
|
_In_ LPWSTR lpszPathName,
|
|
_In_ DWORD dwNameSpace,
|
|
_In_ DWORD dwVersion,
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPBLOB lpProviderSpecific);
|
|
|
|
INT
|
|
WSAAPI
|
|
WSAAdvertiseProvider(
|
|
_In_ const GUID *puuidProviderId,
|
|
_In_ const LPCNSPV2_ROUTINE pNSPv2Routine);
|
|
|
|
INT
|
|
WSAAPI
|
|
WSAUnadvertiseProvider(
|
|
_In_ const GUID *puuidProviderId);
|
|
|
|
INT
|
|
WSAAPI
|
|
WSAProviderCompleteAsyncCall(
|
|
_In_ HANDLE hAsyncCall,
|
|
_In_ INT iRetCode);
|
|
|
|
#if defined(_WIN64)
|
|
|
|
int
|
|
WSPAPI
|
|
WSCSetProviderInfo32(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ WSC_PROVIDER_INFO_TYPE InfoType,
|
|
_In_reads_bytes_(InfoSize) PBYTE Info,
|
|
_In_ size_t InfoSize,
|
|
_In_ DWORD Flags,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WSCGetProviderInfo32(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ WSC_PROVIDER_INFO_TYPE InfoType,
|
|
_Out_writes_bytes_to_(*InfoSize, *InfoSize) PBYTE Info,
|
|
_Inout_ size_t *InfoSize,
|
|
_In_ DWORD Flags,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
INT
|
|
WSAAPI
|
|
WSCEnumNameSpaceProvidersEx32(
|
|
_Inout_ LPDWORD lpdwBufferLength,
|
|
_Out_writes_bytes_(*lpdwBufferLength) LPWSANAMESPACE_INFOEXW lpnspBuffer);
|
|
|
|
INT
|
|
WSPAPI
|
|
WSCInstallNameSpaceEx32(
|
|
_In_ LPWSTR lpszIdentifier,
|
|
_In_ LPWSTR lpszPathName,
|
|
_In_ DWORD dwNameSpace,
|
|
_In_ DWORD dwVersion,
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ LPBLOB lpProviderSpecific);
|
|
|
|
#endif /* (_WIN64) */
|
|
|
|
#if defined(_WIN64)
|
|
int
|
|
WSPAPI
|
|
WSCInstallProviderAndChains64_32(
|
|
#else
|
|
int
|
|
WSPAPI
|
|
WSCInstallProviderAndChains(
|
|
#endif
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ const LPWSTR lpszProviderDllPath,
|
|
#if defined(_WIN64)
|
|
_In_ const LPWSTR lpszProviderDllPath32,
|
|
#endif
|
|
_In_ const LPWSTR lpszLspName,
|
|
_In_ DWORD dwServiceFlags,
|
|
_Inout_updates_(dwNumberOfEntries) LPWSAPROTOCOL_INFOW lpProtocolInfoList,
|
|
_In_ DWORD dwNumberOfEntries,
|
|
_Out_opt_ LPDWORD lpdwCatalogEntryId,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
#endif /* (_WIN32_WINNT >= 0x0600) */
|
|
|
|
BOOL
|
|
WSPAPI
|
|
WPUCloseEvent(
|
|
_In_ WSAEVENT hEvent,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WPUCloseSocketHandle(
|
|
_In_ SOCKET s,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
WSAEVENT
|
|
WSPAPI
|
|
WPUCreateEvent(
|
|
_Out_ LPINT lpErrno);
|
|
|
|
SOCKET
|
|
WSPAPI
|
|
WPUCreateSocketHandle(
|
|
_In_ DWORD dwCatalogEntryId,
|
|
_In_ DWORD_PTR dwContext,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WPUFDIsSet(
|
|
_In_ SOCKET s,
|
|
_In_ fd_set FAR *fdset);
|
|
|
|
int
|
|
WSPAPI
|
|
WPUGetProviderPath(
|
|
_In_ LPGUID lpProviderId,
|
|
_Out_writes_(*lpProviderDllPathLen) WCHAR FAR *lpszProviderDllPath,
|
|
_Inout_ LPINT lpProviderDllPathLen,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
SOCKET
|
|
WSPAPI
|
|
WPUModifyIFSHandle(
|
|
_In_ DWORD dwCatalogEntryId,
|
|
_In_ SOCKET ProposedHandle,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
BOOL
|
|
WSPAPI
|
|
WPUPostMessage(
|
|
_In_ HWND hWnd,
|
|
_In_ UINT Msg,
|
|
_In_ WPARAM wParam,
|
|
_In_ LPARAM lParam);
|
|
|
|
int
|
|
WSPAPI
|
|
WPUQueryBlockingCallback(
|
|
_In_ DWORD dwCatalogEntryId,
|
|
_Out_ LPBLOCKINGCALLBACK FAR *lplpfnCallback,
|
|
_Out_ PDWORD_PTR lpdwContext,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WPUQuerySocketHandleContext(
|
|
_In_ SOCKET s,
|
|
_Out_ PDWORD_PTR lpContext,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WPUQueueApc(
|
|
_In_ LPWSATHREADID lpThreadId,
|
|
_In_ LPWSAUSERAPC lpfnUserApc,
|
|
_In_ DWORD_PTR dwContext,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
BOOL
|
|
WSPAPI
|
|
WPUResetEvent(
|
|
_In_ WSAEVENT hEvent,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
BOOL
|
|
WSPAPI
|
|
WPUSetEvent(
|
|
_In_ WSAEVENT hEvent,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
int
|
|
WSPAPI
|
|
WPUCompleteOverlappedRequest(
|
|
_In_ SOCKET s,
|
|
_Inout_ LPWSAOVERLAPPED lpOverlapped,
|
|
_In_ DWORD dwError,
|
|
_In_ DWORD cbTransferred,
|
|
_Out_ LPINT lpErrno);
|
|
|
|
INT
|
|
WSPAPI
|
|
WSCInstallNameSpace(
|
|
_In_ LPWSTR lpszIdentifier,
|
|
_In_ LPWSTR lpszPathName,
|
|
_In_ DWORD dwNameSpace,
|
|
_In_ DWORD dwVersion,
|
|
_In_ LPGUID lpProviderId);
|
|
|
|
INT
|
|
WSPAPI
|
|
WSCUnInstallNameSpace(
|
|
_In_ LPGUID lpProviderId);
|
|
|
|
INT
|
|
WSPAPI
|
|
WSCEnableNSProvider(
|
|
_In_ LPGUID lpProviderId,
|
|
_In_ BOOL fEnable);
|
|
|
|
_Must_inspect_result_
|
|
INT
|
|
WSAAPI
|
|
NSPStartup(
|
|
_In_ LPGUID lpProviderId,
|
|
_Inout_ LPNSP_ROUTINE lpnspRoutines);
|
|
|
|
#if !defined(_WIN64)
|
|
#include <poppack.h>
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|