| 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 |