Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenws2san.h
Go to the documentation of this file.
00001 /* 00002 * ws2san.h 00003 * 00004 * WinSock Direct (SAN) support 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #pragma once 00024 00025 #define _WS2SAN_H_ 00026 00027 #ifdef __cplusplus 00028 extern "C" { 00029 #endif 00030 00031 #define SO_MAX_RDMA_SIZE 0x700D 00032 #define SO_RDMA_THRESHOLD_SIZE 0x700E 00033 00034 #define MEM_READ 1 00035 #define MEM_WRITE 2 00036 #define MEM_READWRITE 3 00037 00038 #define WSAID_REGISTERMEMORY \ 00039 {0xC0B422F5, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 00040 00041 #define WSAID_DEREGISTERMEMORY \ 00042 {0xC0B422F6, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 00043 00044 #define WSAID_REGISTERRDMAMEMORY \ 00045 {0xC0B422F7, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 00046 00047 #define WSAID_DEREGISTERRDMAMEMORY \ 00048 {0xC0B422F8, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 00049 00050 #define WSAID_RDMAWRITE \ 00051 {0xC0B422F9, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 00052 00053 #define WSAID_RDMAREAD \ 00054 {0xC0B422FA, 0xF58C, 0x11d1, {0xAD, 0x6C, 0x00, 0xC0, 0x4F, 0xA3, 0x4A, 0x2D}} 00055 00056 #if(_WIN32_WINNT >= 0x0501) 00057 #define WSAID_MEMORYREGISTRATIONCACHECALLBACK \ 00058 {0xE5DA4AF8, 0xD824, 0x48CD, {0xA7, 0x99, 0x63, 0x37, 0xA9, 0x8E, 0xD2, 0xAF}} 00059 #endif 00060 00061 typedef struct _WSPUPCALLTABLEEX { 00062 LPWPUCLOSEEVENT lpWPUCloseEvent; 00063 LPWPUCLOSESOCKETHANDLE lpWPUCloseSocketHandle; 00064 LPWPUCREATEEVENT lpWPUCreateEvent; 00065 LPWPUCREATESOCKETHANDLE lpWPUCreateSocketHandle; 00066 LPWPUFDISSET lpWPUFDIsSet; 00067 LPWPUGETPROVIDERPATH lpWPUGetProviderPath; 00068 LPWPUMODIFYIFSHANDLE lpWPUModifyIFSHandle; 00069 LPWPUPOSTMESSAGE lpWPUPostMessage; 00070 LPWPUQUERYBLOCKINGCALLBACK lpWPUQueryBlockingCallback; 00071 LPWPUQUERYSOCKETHANDLECONTEXT lpWPUQuerySocketHandleContext; 00072 LPWPUQUEUEAPC lpWPUQueueApc; 00073 LPWPURESETEVENT lpWPUResetEvent; 00074 LPWPUSETEVENT lpWPUSetEvent; 00075 LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread; 00076 LPWPUCLOSETHREAD lpWPUCloseThread; 00077 LPWPUCOMPLETEOVERLAPPEDREQUEST lpWPUCompleteOverlappedRequest; 00078 } WSPUPCALLTABLEEX, FAR *LPWSPUPCALLTABLEEX; 00079 00080 typedef struct _WSABUFEX { 00081 u_long len; 00082 char FAR *buf; 00083 HANDLE handle; 00084 } WSABUFEX, FAR * LPWSABUFEX; 00085 00086 typedef int 00087 (WSPAPI *LPWSPSTARTUPEX)( 00088 IN WORD wVersionRequested, 00089 OUT LPWSPDATA lpWSPData, 00090 IN LPWSAPROTOCOL_INFOW lpProtocolInfo, 00091 IN LPWSPUPCALLTABLEEX lpUpcallTable, 00092 OUT LPWSPPROC_TABLE lpProcTable); 00093 00094 typedef HANDLE 00095 (WSPAPI *LPFN_WSPREGISTERMEMORY)( 00096 IN SOCKET s, 00097 IN PVOID lpBuffer, 00098 IN DWORD dwBufferLength, 00099 IN DWORD dwFlags, 00100 OUT LPINT lpErrno); 00101 00102 typedef int 00103 (WSPAPI *LPFN_WSPDEREGISTERMEMORY)( 00104 IN SOCKET s, 00105 IN HANDLE Handle, 00106 OUT LPINT lpErrno); 00107 00108 typedef int 00109 (WSPAPI *LPFN_WSPREGISTERRDMAMEMORY)( 00110 IN SOCKET s, 00111 IN PVOID lpBuffer, 00112 IN DWORD dwBufferLength, 00113 IN DWORD dwFlags, 00114 OUT LPVOID lpRdmaBufferDescriptor, 00115 IN OUT LPDWORD lpdwDescriptorLength, 00116 OUT LPINT lpErrno); 00117 00118 typedef int 00119 (WSPAPI *LPFN_WSPDEREGISTERRDMAMEMORY)( 00120 IN SOCKET s, 00121 IN LPVOID lpRdmaBufferDescriptor, 00122 IN DWORD dwDescriptorLength, 00123 OUT LPINT lpErrno); 00124 00125 typedef int 00126 (WSPAPI *LPFN_WSPRDMAWRITE)( 00127 IN SOCKET s, 00128 IN LPWSABUFEX lpBuffers, 00129 IN DWORD dwBufferCount, 00130 IN LPVOID lpTargetBufferDescriptor, 00131 IN DWORD dwTargetDescriptorLength, 00132 IN DWORD dwTargetBufferOffset, 00133 OUT LPDWORD lpdwNumberOfBytesWritten, 00134 IN DWORD dwFlags, 00135 IN LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00136 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00137 IN LPWSATHREADID lpThreadId, 00138 OUT LPINT lpErrno); 00139 00140 typedef int 00141 (WSPAPI *LPFN_WSPRDMAREAD)( 00142 IN SOCKET s, 00143 IN LPWSABUFEX lpBuffers, 00144 IN DWORD dwBufferCount, 00145 IN LPVOID lpTargetBufferDescriptor, 00146 IN DWORD dwTargetDescriptorLength, 00147 IN DWORD dwTargetBufferOffset, 00148 OUT LPDWORD lpdwNumberOfBytesRead, 00149 IN DWORD dwFlags, 00150 IN LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00151 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00152 IN LPWSATHREADID lpThreadId, 00153 OUT LPINT lpErrno); 00154 00155 #if(_WIN32_WINNT >= 0x0501) 00156 typedef int 00157 (WSPAPI *LPFN_WSPMEMORYREGISTRATIONCACHECALLBACK)( 00158 IN PVOID lpvAddress, 00159 IN SIZE_T Size, 00160 OUT LPINT lpErrno); 00161 #endif 00162 00163 int 00164 WSPAPI 00165 WSPStartupEx( 00166 IN WORD wVersionRequested, 00167 OUT LPWSPDATA lpWSPData, 00168 IN LPWSAPROTOCOL_INFOW lpProtocolInfo, 00169 IN LPWSPUPCALLTABLEEX lpUpcallTable, 00170 OUT LPWSPPROC_TABLE lpProcTable); 00171 00172 HANDLE 00173 WSPAPI 00174 WSPRegisterMemory( 00175 IN SOCKET s, 00176 IN PVOID lpBuffer, 00177 IN DWORD dwBufferLength, 00178 IN DWORD dwFlags, 00179 OUT LPINT lpErrno); 00180 00181 int 00182 WSPAPI 00183 WSPDeregisterMemory( 00184 IN SOCKET s, 00185 IN HANDLE Handle, 00186 OUT LPINT lpErrno); 00187 00188 int 00189 WSPAPI 00190 WSPRegisterRdmaMemory( 00191 IN SOCKET s, 00192 IN PVOID lpBuffer, 00193 IN DWORD dwBufferLength, 00194 IN DWORD dwFlags, 00195 OUT LPVOID lpRdmaBufferDescriptor, 00196 IN OUT LPDWORD lpdwDescriptorLength, 00197 OUT LPINT lpErrno); 00198 00199 int 00200 WSPAPI 00201 WSPDeregisterRdmaMemory( 00202 IN SOCKET s, 00203 IN LPVOID lpRdmaBufferDescriptor, 00204 IN DWORD dwDescriptorLength, 00205 OUT LPINT lpErrno); 00206 00207 int 00208 WSPAPI 00209 WSPRdmaWrite( 00210 IN SOCKET s, 00211 IN LPWSABUFEX lpBuffers, 00212 IN DWORD dwBufferCount, 00213 IN LPVOID lpTargetBufferDescriptor, 00214 IN DWORD dwTargetDescriptorLength, 00215 IN DWORD dwTargetBufferOffset, 00216 OUT LPDWORD lpdwNumberOfBytesWritten, 00217 IN DWORD dwFlags, 00218 IN LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00219 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00220 IN LPWSATHREADID lpThreadId, 00221 OUT LPINT lpErrno); 00222 00223 int 00224 WSPAPI 00225 WSPRdmaRead( 00226 IN SOCKET s, 00227 IN LPWSABUFEX lpBuffers, 00228 IN DWORD dwBufferCount, 00229 IN LPVOID lpTargetBufferDescriptor, 00230 IN DWORD dwTargetDescriptorLength, 00231 IN DWORD dwTargetBufferOffset, 00232 OUT LPDWORD lpdwNumberOfBytesRead, 00233 IN DWORD dwFlags, 00234 IN LPWSAOVERLAPPED lpOverlapped OPTIONAL, 00235 IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL, 00236 IN LPWSATHREADID lpThreadId, 00237 OUT LPINT lpErrno); 00238 00239 #if(_WIN32_WINNT >= 0x0501) 00240 int 00241 WSPAPI 00242 WSPMemoryRegistrationCacheCallback( 00243 IN PVOID lpvAddress, 00244 IN SIZE_T Size, 00245 OUT LPINT lpErrno); 00246 #endif 00247 00248 #ifdef __cplusplus 00249 } 00250 #endif Generated on Thu May 24 2012 04:31:10 for ReactOS by
1.7.6.1
|