32 #define SO_MAX_RDMA_SIZE 0x700D 33 #define SO_RDMA_THRESHOLD_SIZE 0x700E 37 #define MEM_READWRITE 3 39 #define WSAID_REGISTERMEMORY \ 40 {0xC0B422F5, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 42 #define WSAID_DEREGISTERMEMORY \ 43 {0xC0B422F6, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 45 #define WSAID_REGISTERRDMAMEMORY \ 46 {0xC0B422F7, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 48 #define WSAID_DEREGISTERRDMAMEMORY \ 49 {0xC0B422F8, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 51 #define WSAID_RDMAWRITE \ 52 {0xC0B422F9, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 54 #define WSAID_RDMAREAD \ 55 {0xC0B422FA, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 57 #if(_WIN32_WINNT >= 0x0501) 58 #define WSAID_MEMORYREGISTRATIONCACHECALLBACK \ 59 {0xE5DA4AF8, 0xD824, 0x48CD, {0xA7, 0x99, 0x63, 0x37, 0xA9, 0x8E, 0xD2, 0xAF}} 162 #if(_WIN32_WINNT >= 0x0501) 166 (
WSPAPI *LPFN_WSPMEMORYREGISTRATIONCACHECALLBACK)(
251 #if(_WIN32_WINNT >= 0x0501) 255 WSPMemoryRegistrationCacheCallback(
LPWPURESETEVENT lpWPUResetEvent
LPWPUGETPROVIDERPATH lpWPUGetProviderPath
LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread
_Must_inspect_result_ int WSPAPI WSPRegisterRdmaMemory(_In_ SOCKET s, _In_reads_bytes_(dwBufferLength) PVOID lpBuffer, _In_ DWORD dwBufferLength, _In_ DWORD dwFlags, _Out_writes_bytes_(*lpdwDescriptorLength) LPVOID lpRdmaBufferDescriptor, _Inout_ LPDWORD lpdwDescriptorLength, _Out_ LPINT lpErrno)
int WSPAPI WSPDeregisterMemory(_In_ SOCKET s, _In_ HANDLE Handle, _Out_ LPINT lpErrno)
int(WSPAPI * LPWPUCLOSETHREAD)(_In_ LPWSATHREADID lpThreadId, _Out_ LPINT lpErrno)
IN PVOID IN PVOID IN USHORT IN USHORT Size
BOOL(WSPAPI * LPWPUCLOSEEVENT)(_In_ WSAEVENT hEvent, _Out_ LPINT lpErrno)
_Must_inspect_result_ SOCKET(WSPAPI * LPWPUCREATESOCKETHANDLE)(_In_ DWORD dwCatalogEntryId, _In_ DWORD_PTR dwContext, _Out_ LPINT lpErrno)
LPWPUMODIFYIFSHANDLE lpWPUModifyIFSHandle
LPWPUCREATEEVENT lpWPUCreateEvent
LPWPUQUERYSOCKETHANDLECONTEXT lpWPUQuerySocketHandleContext
int WSPAPI WSPDeregisterRdmaMemory(_In_ SOCKET s, _In_reads_bytes_(dwDescriptorLength) LPVOID lpRdmaBufferDescriptor, _In_ DWORD dwDescriptorLength, _Out_ LPINT lpErrno)
int(WSPAPI * LPWPUGETPROVIDERPATH)(_In_ LPGUID lpProviderId, _Out_writes_(*lpProviderDllPathLen) WCHAR FAR *lpszProviderDllPath, _Inout_ LPINT lpProviderDllPathLen, _Out_ LPINT lpErrno)
BOOL(WSPAPI * LPWPUSETEVENT)(_In_ WSAEVENT hEvent, _Out_ LPINT lpErrno)
int(WSPAPI * LPWPUFDISSET)(_In_ SOCKET s, _In_ fd_set FAR *fdset)
LPWPUCREATESOCKETHANDLE lpWPUCreateSocketHandle
GLenum GLuint GLenum GLsizei const GLchar * buf
struct _WSABUFEX * LPWSABUFEX
LPWPUSETEVENT lpWPUSetEvent
int(WSPAPI * LPWPUOPENCURRENTTHREAD)(_Out_ LPWSATHREADID lpThreadId, _Out_ LPINT lpErrno)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
LPWPUPOSTMESSAGE lpWPUPostMessage
int WSPAPI WSPRdmaRead(_In_ SOCKET s, _In_reads_(dwBufferCount) LPWSABUFEX lpBuffers, _In_ DWORD dwBufferCount, _In_reads_bytes_(dwTargetDescriptorLength) LPVOID lpTargetBufferDescriptor, _In_ DWORD dwTargetDescriptorLength, _In_ DWORD dwTargetBufferOffset, _Out_ LPDWORD lpdwNumberOfBytesRead, _In_ DWORD dwFlags, _In_opt_ LPWSAOVERLAPPED lpOverlapped, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _In_ LPWSATHREADID lpThreadId, _Out_ LPINT lpErrno)
struct _WSABUFEX WSABUFEX
int(WSPAPI * LPWPUCLOSESOCKETHANDLE)(_In_ SOCKET s, _Out_ LPINT lpErrno)
LPWPUQUERYBLOCKINGCALLBACK lpWPUQueryBlockingCallback
WSAEVENT(WSPAPI * LPWPUCREATEEVENT)(_Out_ LPINT lpErrno)
_Must_inspect_result_ int(WSPAPI * LPFN_WSPREGISTERRDMAMEMORY)(_In_ SOCKET s, _In_reads_bytes_(dwBufferLength) PVOID lpBuffer, _In_ DWORD dwBufferLength, _In_ DWORD dwFlags, _Out_writes_bytes_(*lpdwDescriptorLength) LPVOID lpRdmaBufferDescriptor, _Inout_ LPDWORD lpdwDescriptorLength, _Out_ LPINT lpErrno)
_Must_inspect_result_ int(WSPAPI * LPWSPSTARTUPEX)(_In_ WORD wVersionRequested, _Out_ LPWSPDATA lpWSPData, _In_ LPWSAPROTOCOL_INFOW lpProtocolInfo, _In_ LPWSPUPCALLTABLEEX lpUpcallTable, _Out_ LPWSPPROC_TABLE lpProcTable)
_Must_inspect_result_ HANDLE WSPAPI WSPRegisterMemory(_In_ SOCKET s, _In_reads_bytes_(dwBufferLength) PVOID lpBuffer, _In_ DWORD dwBufferLength, _In_ DWORD dwFlags, _Out_ LPINT lpErrno)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_Field_size_bytes_(len) char FAR *buf
#define _Must_inspect_result_
BOOL(WSPAPI * LPWPURESETEVENT)(_In_ WSAEVENT hEvent, _Out_ LPINT lpErrno)
int(WSPAPI * LPWPUCOMPLETEOVERLAPPEDREQUEST)(_In_ SOCKET s, _Inout_ LPWSAOVERLAPPED lpOverlapped, _In_ DWORD dwError, _In_ DWORD cbTransferred, _Out_ LPINT lpErrno)
LPWPUCLOSETHREAD lpWPUCloseThread
int(WSPAPI * LPFN_WSPRDMAREAD)(_In_ SOCKET s, _In_reads_(dwBufferCount) LPWSABUFEX lpBuffers, _In_ DWORD dwBufferCount, _In_reads_bytes_(dwTargetDescriptorLength) LPVOID lpTargetBufferDescriptor, _In_ DWORD dwTargetDescriptorLength, _In_ DWORD dwTargetBufferOffset, _Out_ LPDWORD lpdwNumberOfBytesRead, _In_ DWORD dwFlags, _In_opt_ LPWSAOVERLAPPED lpOverlapped, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _In_ LPWSATHREADID lpThreadId, _Out_ LPINT lpErrno)
struct _WSPUPCALLTABLEEX * LPWSPUPCALLTABLEEX
int WSPAPI WSPRdmaWrite(_In_ SOCKET s, _In_reads_(dwBufferCount) LPWSABUFEX lpBuffers, _In_ DWORD dwBufferCount, _In_reads_bytes_(dwTargetDescriptorLength) LPVOID lpTargetBufferDescriptor, _In_ DWORD dwTargetDescriptorLength, _In_ DWORD dwTargetBufferOffset, _Out_ LPDWORD lpdwNumberOfBytesWritten, _In_ DWORD dwFlags, _In_opt_ LPWSAOVERLAPPED lpOverlapped, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _In_ LPWSATHREADID lpThreadId, _Out_ LPINT lpErrno)
LPWPUCLOSEEVENT lpWPUCloseEvent
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED lpOverlapped
struct _WSPUPCALLTABLEEX WSPUPCALLTABLEEX
int(WSPAPI * LPWPUQUERYSOCKETHANDLECONTEXT)(_In_ SOCKET s, _Out_ PDWORD_PTR lpContext, _Out_ LPINT lpErrno)
LPWPUQUEUEAPC lpWPUQueueApc
BOOL(WSPAPI * LPWPUPOSTMESSAGE)(_In_ HWND hWnd, _In_ UINT Msg, _In_ WPARAM wParam, _In_ LPARAM lParam)
int(WSPAPI * LPFN_WSPRDMAWRITE)(_In_ SOCKET s, _In_reads_(dwBufferCount) LPWSABUFEX lpBuffers, _In_ DWORD dwBufferCount, _In_reads_bytes_(dwTargetDescriptorLength) LPVOID lpTargetBufferDescriptor, _In_ DWORD dwTargetDescriptorLength, _In_ DWORD dwTargetBufferOffset, _Out_ LPDWORD lpdwNumberOfBytesWritten, _In_ DWORD dwFlags, _In_opt_ LPWSAOVERLAPPED lpOverlapped, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _In_ LPWSATHREADID lpThreadId, _Out_ LPINT lpErrno)
void(CALLBACK * LPWSAOVERLAPPED_COMPLETION_ROUTINE)(IN DWORD dwError, IN DWORD cbTransferred, IN LPWSAOVERLAPPED lpOverlapped, IN DWORD dwFlags)
LPWPUCOMPLETEOVERLAPPEDREQUEST lpWPUCompleteOverlappedRequest
LPWPUFDISSET lpWPUFDIsSet
_Must_inspect_result_ HANDLE(WSPAPI * LPFN_WSPREGISTERMEMORY)(_In_ SOCKET s, _In_reads_bytes_(dwBufferLength) PVOID lpBuffer, _In_ DWORD dwBufferLength, _In_ DWORD dwFlags, _Out_ LPINT lpErrno)
int(WSPAPI * LPFN_WSPDEREGISTERRDMAMEMORY)(_In_ SOCKET s, _In_reads_bytes_(dwDescriptorLength) LPVOID lpRdmaBufferDescriptor, _In_ DWORD dwDescriptorLength, _Out_ LPINT lpErrno)
_Must_inspect_result_ int WSPAPI WSPStartupEx(_In_ WORD wVersionRequested, _Out_ LPWSPDATA lpWSPData, _In_ LPWSAPROTOCOL_INFOW lpProtocolInfo, _In_ LPWSPUPCALLTABLEEX lpUpcallTable, _Out_ LPWSPPROC_TABLE lpProcTable)
int(WSPAPI * LPFN_WSPDEREGISTERMEMORY)(_In_ SOCKET s, _In_ HANDLE Handle, _Out_ LPINT lpErrno)
int(WSPAPI * LPWPUQUEUEAPC)(_In_ LPWSATHREADID lpThreadId, _In_ LPWSAUSERAPC lpfnUserApc, _In_ DWORD_PTR dwContext, _Out_ LPINT lpErrno)
LPWPUCLOSESOCKETHANDLE lpWPUCloseSocketHandle
#define _Out_writes_bytes_(size)
SOCKET(WSPAPI * LPWPUMODIFYIFSHANDLE)(_In_ DWORD dwCatalogEntryId, _In_ SOCKET ProposedHandle, _Out_ LPINT lpErrno)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define _In_reads_bytes_(size)
int(WSPAPI * LPWPUQUERYBLOCKINGCALLBACK)(_In_ DWORD dwCatalogEntryId, _Out_ LPBLOCKINGCALLBACK FAR *lplpfnCallback, _Out_ PDWORD_PTR lpdwContext, _Out_ LPINT lpErrno)