📄 ws2spi.h
字号:
DWORD dwCatalogEntryId,
SOCKET ProposedHandle,
LPINT lpErrno
);
typedef
BOOL
(WSPAPI * LPWPUPOSTMESSAGE)(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
typedef
int
(WSPAPI * LPWPUQUERYBLOCKINGCALLBACK)(
DWORD dwCatalogEntryId,
LPBLOCKINGCALLBACK FAR * lplpfnCallback,
LPDWORD lpdwContext,
LPINT lpErrno
);
typedef
int
(WSPAPI * LPWPUQUERYSOCKETHANDLECONTEXT)(
SOCKET s,
LPDWORD lpContext,
LPINT lpErrno
);
typedef
int
(WSPAPI * LPWPUQUEUEAPC)(
LPWSATHREADID lpThreadId,
LPWSAUSERAPC lpfnUserApc,
DWORD dwContext,
LPINT lpErrno
);
typedef
BOOL
(WSPAPI * LPWPURESETEVENT)(
WSAEVENT hEvent,
LPINT lpErrno
);
typedef
BOOL
(WSPAPI * LPWPUSETEVENT)(
WSAEVENT hEvent,
LPINT lpErrno
);
typedef
int
(WSPAPI * LPWPUOPENCURRENTTHREAD)(
LPWSATHREADID lpThreadId,
LPINT lpErrno
);
typedef
int
(WSPAPI * LPWPUCLOSETHREAD)(
LPWSATHREADID lpThreadId,
LPINT lpErrno
);
// Available only directly from ws2_32.dll
typedef
int
(WSPAPI * LPWPUCOMPLETEOVERLAPPEDREQUEST) (
SOCKET s,
LPWSAOVERLAPPED lpOverlapped,
DWORD dwError,
DWORD cbTransferred,
LPINT lpErrno
);
/*
* The upcall table. This structure is passed by value to the service
* provider's WSPStartup() entrypoint.
*/
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;
/*
* WinSock 2 SPI socket function prototypes
*/
int
WSPAPI
WSPStartup(
WORD wVersionRequested,
LPWSPDATA lpWSPData,
LPWSAPROTOCOL_INFOW lpProtocolInfo,
WSPUPCALLTABLE UpcallTable,
LPWSPPROC_TABLE lpProcTable
);
typedef
int
(WSPAPI * LPWSPSTARTUP)(
WORD wVersionRequested,
LPWSPDATA lpWSPData,
LPWSAPROTOCOL_INFOW lpProtocolInfo,
WSPUPCALLTABLE UpcallTable,
LPWSPPROC_TABLE lpProcTable
);
/*
* Installation and configuration entrypoints.
*/
int
WSPAPI
WSCEnumProtocols(
LPINT lpiProtocols,
LPWSAPROTOCOL_INFOW lpProtocolBuffer,
LPDWORD lpdwBufferLength,
LPINT lpErrno
);
typedef
int
(WSPAPI * LPWSCENUMPROTOCOLS)(
LPINT lpiProtocols,
LPWSAPROTOCOL_INFOW lpProtocolBuffer,
LPDWORD lpdwBufferLength,
LPINT lpErrno
);
int
WSPAPI
WSCDeinstallProvider(
LPGUID lpProviderId,
LPINT lpErrno
);
typedef
int
(WSPAPI * LPWSCDEINSTALLPROVIDER)(
LPGUID lpProviderId,
LPINT lpErrno
);
int
WSPAPI
WSCInstallProvider(
LPGUID lpProviderId,
const WCHAR FAR * lpszProviderDllPath,
const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
DWORD dwNumberOfEntries,
LPINT lpErrno
);
typedef
int
(WSPAPI * LPWSCINSTALLPROVIDER)(
LPGUID lpProviderId,
const WCHAR FAR * lpszProviderDllPath,
const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
DWORD dwNumberOfEntries,
LPINT lpErrno
);
int
WSPAPI
WSCGetProviderPath(
LPGUID lpProviderId,
WCHAR FAR * lpszProviderDllPath,
LPINT lpProviderDllPathLen,
LPINT lpErrno
);
typedef
int
(WSPAPI * LPWSCGETPROVIDERPATH)(
LPGUID lpProviderId,
WCHAR FAR * lpszProviderDllPath,
LPINT lpProviderDllPathLen,
LPINT lpErrno
);
/*
* The following upcall function prototypes are only used by WinSock 2 DLL and
* should not be used by any service providers.
*/
BOOL
WSPAPI
WPUCloseEvent(
WSAEVENT hEvent,
LPINT lpErrno
);
int
WSPAPI
WPUCloseSocketHandle(
SOCKET s,
LPINT lpErrno
);
WSAEVENT
WSPAPI
WPUCreateEvent(
LPINT lpErrno
);
SOCKET
WSPAPI
WPUCreateSocketHandle(
DWORD dwCatalogEntryId,
DWORD dwContext,
LPINT lpErrno
);
int
WSPAPI
WPUFDIsSet(
SOCKET s,
fd_set FAR * fdset
);
int
WSPAPI
WPUGetProviderPath(
LPGUID lpProviderId,
WCHAR FAR * lpszProviderDllPath,
LPINT lpProviderDllPathLen,
LPINT lpErrno
);
SOCKET
WSPAPI
WPUModifyIFSHandle(
DWORD dwCatalogEntryId,
SOCKET ProposedHandle,
LPINT lpErrno
);
BOOL
WSPAPI
WPUPostMessage(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam
);
int
WSPAPI
WPUQueryBlockingCallback(
DWORD dwCatalogEntryId,
LPBLOCKINGCALLBACK FAR * lplpfnCallback,
LPDWORD lpdwContext,
LPINT lpErrno
);
int
WSPAPI
WPUQuerySocketHandleContext(
SOCKET s,
LPDWORD lpContext,
LPINT lpErrno
);
int
WSPAPI
WPUQueueApc(
LPWSATHREADID lpThreadId,
LPWSAUSERAPC lpfnUserApc,
DWORD dwContext,
LPINT lpErrno
);
BOOL
WSPAPI
WPUResetEvent(
WSAEVENT hEvent,
LPINT lpErrno
);
BOOL
WSPAPI
WPUSetEvent(
WSAEVENT hEvent,
LPINT lpErrno
);
int
WSPAPI
WPUCompleteOverlappedRequest (
SOCKET s,
LPWSAOVERLAPPED lpOverlapped,
DWORD dwError,
DWORD cbTransferred,
LPINT lpErrno
);
/*
* Installing and uninstalling name space providers.
*/
INT
WSPAPI
WSCInstallNameSpace (
LPWSTR lpszIdentifier,
LPWSTR lpszPathName,
DWORD dwNameSpace,
DWORD dwVersion,
LPGUID lpProviderId
);
typedef
INT
(WSPAPI * LPWSCINSTALLNAMESPACE)(
LPWSTR lpszIdentifier,
LPWSTR lpszPathName,
DWORD dwNameSpace,
DWORD dwVersion,
LPGUID lpProviderId
);
INT
WSPAPI
WSCUnInstallNameSpace (
LPGUID lpProviderId
);
typedef
INT
(WSPAPI * LPWSCUNINSTALLNAMESPACE)(
LPGUID lpProviderId
);
INT
WSPAPI
WSCEnableNSProvider (
LPGUID lpProviderId,
BOOL fEnable
);
typedef
INT
(WSPAPI * LPWSCENABLENSPROVIDER)(
LPGUID lpProviderId,
BOOL fEnable
);
/*
* Pointers to the individual entries in the namespace proc table.
*/
typedef
INT
(WSAAPI * LPNSPCLEANUP)(
LPGUID lpProviderId
);
typedef
INT
(WSAAPI * LPNSPLOOKUPSERVICEBEGIN)(
LPGUID lpProviderId,
LPWSAQUERYSETW lpqsRestrictions,
LPWSASERVICECLASSINFOW lpServiceClassInfo,
DWORD dwControlFlags,
LPHANDLE lphLookup
);
typedef
INT
(WSAAPI * LPNSPLOOKUPSERVICENEXT)(
HANDLE hLookup,
DWORD dwControlFlags,
LPDWORD lpdwBufferLength,
LPWSAQUERYSETW lpqsResults
);
typedef
INT
(WSAAPI * LPNSPLOOKUPSERVICEEND)(
HANDLE hLookup
);
typedef
INT
(WSAAPI * LPNSPSETSERVICE)(
LPGUID lpProviderId,
LPWSASERVICECLASSINFOW lpServiceClassInfo,
LPWSAQUERYSETW lpqsRegInfo,
WSAESETSERVICEOP essOperation,
DWORD dwControlFlags
);
typedef
INT
(WSAAPI * LPNSPINSTALLSERVICECLASS)(
LPGUID lpProviderId,
LPWSASERVICECLASSINFOW lpServiceClassInfo
);
typedef
INT
(WSAAPI * LPNSPREMOVESERVICECLASS)(
LPGUID lpProviderId,
LPGUID lpServiceClassId
);
typedef
INT
(WSAAPI * LPNSPGETSERVICECLASSINFO)(
LPGUID lpProviderId,
LPDWORD lpdwBufSize,
LPWSASERVICECLASSINFOW lpServiceClassInfo
);
/*
* The name space service provider procedure table.
*/
typedef struct _NSP_ROUTINE {
/* Structure version information: */
DWORD cbSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
/* Procedure-pointer table: */
LPNSPCLEANUP NSPCleanup;
LPNSPLOOKUPSERVICEBEGIN NSPLookupServiceBegin;
LPNSPLOOKUPSERVICENEXT NSPLookupServiceNext;
LPNSPLOOKUPSERVICEEND NSPLookupServiceEnd;
LPNSPSETSERVICE NSPSetService;
LPNSPINSTALLSERVICECLASS NSPInstallServiceClass;
LPNSPREMOVESERVICECLASS NSPRemoveServiceClass;
LPNSPGETSERVICECLASSINFO NSPGetServiceClassInfo;
} NSP_ROUTINE, FAR * LPNSP_ROUTINE;
/*
* Startup procedures.
*/
INT
WSAAPI
NSPStartup(
LPGUID lpProviderId,
LPNSP_ROUTINE lpnspRoutines
);
typedef
INT
(WSAAPI * LPNSPSTARTUP)(
LPGUID lpProviderId,
LPNSP_ROUTINE lpnspRoutines
);
#ifdef __cplusplus
}
#endif
#include <poppack.h>
#endif /* _WINSOCK2SPI_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -