ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ws2san.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.