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

mswsock.h
Go to the documentation of this file.
00001 /*
00002  * mswsock.h
00003  * MS-specific extensions to Windows Sockets, exported from mswsock.dll.
00004  * These functions are N/A on Windows9x.
00005  *
00006  * This file is part of a free library for the Win32 API.
00007  * This library is distributed in the hope that it will be useful,
00008  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00009  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00010  */
00011 
00012 #pragma once
00013 
00014 #define _MSWSOCK_
00015 
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019 
00020 #include <mswsockdef.h>
00021 
00022 #define SO_CONNDATA               0x7000
00023 #define SO_CONNOPT                0x7001
00024 #define SO_DISCDATA               0x7002
00025 #define SO_DISCOPT                0x7003
00026 #define SO_CONNDATALEN            0x7004
00027 #define SO_CONNOPTLEN             0x7005
00028 #define SO_DISCDATALEN            0x7006
00029 #define SO_DISCOPTLEN             0x7007
00030 #define SO_OPENTYPE               0x7008
00031 #define SO_SYNCHRONOUS_ALERT      0x10
00032 #define SO_SYNCHRONOUS_NONALERT   0x20
00033 #define SO_MAXDG                  0x7009
00034 #define SO_MAXPATHDG              0x700A
00035 #define SO_UPDATE_ACCEPT_CONTEXT  0x700B
00036 #define SO_CONNECT_TIME           0x700C
00037 #if(_WIN32_WINNT >= 0x0501)
00038 #define SO_UPDATE_CONNECT_CONTEXT 0x7010
00039 #endif
00040 
00041 #define TCP_BSDURGENT            0x7000
00042 
00043 #define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
00044 
00045 #if((_WIN32_WINNT < 0x0600) && (_WIN32_WINNT >= 0x0501))
00046 #define SIO_SOCKET_CLOSE_NOTIFY _WSAIOW(IOC_VENDOR,13)
00047 #endif
00048 
00049 #define SIO_UDP_NETRESET _WSAIOW(IOC_VENDOR,15)
00050 
00051 #define TF_DISCONNECT            1
00052 #define TF_REUSE_SOCKET          2
00053 #define TF_WRITE_BEHIND          4
00054 
00055 #define TF_USE_DEFAULT_WORKER    0
00056 #define TF_USE_SYSTEM_THREAD     16
00057 #define TF_USE_KERNEL_APC        32
00058 
00059 #if(_WIN32_WINNT >= 0x0501)
00060 #define TP_ELEMENT_MEMORY        1
00061 #define TP_ELEMENT_FILE          2
00062 #define TP_ELEMENT_EOP           4
00063 #endif
00064 
00065 #define TP_DISCONNECT            TF_DISCONNECT
00066 #define TP_REUSE_SOCKET          TF_REUSE_SOCKET
00067 #define TP_USE_DEFAULT_WORKER    TF_USE_DEFAULT_WORKER
00068 #define TP_USE_SYSTEM_THREAD     TF_USE_SYSTEM_THREAD
00069 #define TP_USE_KERNEL_APC        TF_USE_KERNEL_APC
00070 
00071 #define WSAID_TRANSMITFILE \
00072   {0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
00073 
00074 #define WSAID_ACCEPTEX \
00075   {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
00076 
00077 #define WSAID_GETACCEPTEXSOCKADDRS \
00078   {0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
00079 
00080 typedef struct _TRANSMIT_FILE_BUFFERS {
00081   LPVOID Head;
00082   DWORD HeadLength;
00083   LPVOID Tail;
00084   DWORD TailLength;
00085 } TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, FAR *LPTRANSMIT_FILE_BUFFERS;
00086 
00087 typedef BOOL
00088 (PASCAL FAR *LPFN_TRANSMITFILE)(
00089   IN SOCKET hSocket,
00090   IN HANDLE hFile,
00091   IN DWORD nNumberOfBytesToWrite,
00092   IN DWORD nNumberOfBytesPerSend,
00093   IN OUT LPOVERLAPPED lpOverlapped OPTIONAL,
00094   IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers OPTIONAL,
00095   IN DWORD dwReserved);
00096 
00097 typedef BOOL
00098 (PASCAL FAR *LPFN_ACCEPTEX)(
00099   IN SOCKET sListenSocket,
00100   IN SOCKET sAcceptSocket,
00101   IN PVOID lpOutputBuffer,
00102   IN DWORD dwReceiveDataLength,
00103   IN DWORD dwLocalAddressLength,
00104   IN DWORD dwRemoteAddressLength,
00105   OUT LPDWORD lpdwBytesReceived,
00106   IN OUT LPOVERLAPPED lpOverlapped);
00107 
00108 typedef VOID
00109 (PASCAL FAR *LPFN_GETACCEPTEXSOCKADDRS)(
00110   IN PVOID lpOutputBuffer,
00111   IN DWORD dwReceiveDataLength,
00112   IN DWORD dwLocalAddressLength,
00113   IN DWORD dwRemoteAddressLength,
00114   OUT struct sockaddr **LocalSockaddr,
00115   OUT LPINT LocalSockaddrLength,
00116   OUT struct sockaddr **RemoteSockaddr,
00117   OUT LPINT RemoteSockaddrLength);
00118 
00119 #if(_WIN32_WINNT >= 0x0501)
00120 
00121 typedef struct _TRANSMIT_PACKETS_ELEMENT {
00122   ULONG dwElFlags;
00123   ULONG cLength;
00124   union {
00125     struct {
00126       LARGE_INTEGER nFileOffset;
00127       HANDLE hFile;
00128     };
00129     PVOID pBuffer;
00130   };
00131 } TRANSMIT_PACKETS_ELEMENT, *PTRANSMIT_PACKETS_ELEMENT, FAR *LPTRANSMIT_PACKETS_ELEMENT;
00132 
00133 typedef BOOL
00134 (PASCAL FAR *LPFN_TRANSMITPACKETS)(
00135   IN SOCKET hSocket,
00136   IN LPTRANSMIT_PACKETS_ELEMENT lpPacketArray OPTIONAL,
00137   IN DWORD nElementCount,
00138   IN DWORD nSendSize,
00139   IN OUT LPOVERLAPPED lpOverlapped OPTIONAL,
00140   IN DWORD dwFlags);
00141 
00142 #define WSAID_TRANSMITPACKETS \
00143   {0xd9689da0,0x1f90,0x11d3,{0x99,0x71,0x00,0xc0,0x4f,0x68,0xc8,0x76}}
00144 
00145 typedef BOOL
00146 (PASCAL FAR *LPFN_CONNECTEX)(
00147   IN SOCKET s,
00148   IN const struct sockaddr FAR *name,
00149   IN int namelen,
00150   IN PVOID lpSendBuffer OPTIONAL,
00151   IN DWORD dwSendDataLength,
00152   OUT LPDWORD lpdwBytesSent,
00153   IN OUT LPOVERLAPPED lpOverlapped);
00154 
00155 #define WSAID_CONNECTEX \
00156   {0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}
00157 
00158 typedef BOOL
00159 (PASCAL FAR *LPFN_DISCONNECTEX)(
00160   IN SOCKET s,
00161   IN OUT LPOVERLAPPED lpOverlapped OPTIONAL,
00162   IN DWORD dwFlags,
00163   IN DWORD dwReserved);
00164 
00165 #define WSAID_DISCONNECTEX \
00166   {0x7fda2e11,0x8630,0x436f,{0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}}
00167 
00168 #define DE_REUSE_SOCKET TF_REUSE_SOCKET
00169 
00170 #define NLA_NAMESPACE_GUID \
00171   {0x6642243a,0x3ba8,0x4aa6,{0xba,0xa5,0x2e,0xb,0xd7,0x1f,0xdd,0x83}}
00172 
00173 #define NLA_SERVICE_CLASS_GUID \
00174   {0x37e515,0xb5c9,0x4a43,{0xba,0xda,0x8b,0x48,0xa8,0x7a,0xd2,0x39}}
00175 
00176 #define NLA_ALLUSERS_NETWORK     0x00000001
00177 #define NLA_FRIENDLY_NAME        0x00000002
00178 
00179 typedef enum _NLA_BLOB_DATA_TYPE {
00180   NLA_RAW_DATA = 0,
00181   NLA_INTERFACE = 1,
00182   NLA_802_1X_LOCATION = 2,
00183   NLA_CONNECTIVITY = 3,
00184   NLA_ICS = 4,
00185 } NLA_BLOB_DATA_TYPE, *PNLA_BLOB_DATA_TYPE;
00186 
00187 typedef enum _NLA_CONNECTIVITY_TYPE {
00188   NLA_NETWORK_AD_HOC = 0,
00189   NLA_NETWORK_MANAGED = 1,
00190   NLA_NETWORK_UNMANAGED = 2,
00191   NLA_NETWORK_UNKNOWN = 3,
00192 } NLA_CONNECTIVITY_TYPE, *PNLA_CONNECTIVITY_TYPE;
00193 
00194 typedef enum _NLA_INTERNET {
00195   NLA_INTERNET_UNKNOWN = 0,
00196   NLA_INTERNET_NO = 1,
00197   NLA_INTERNET_YES = 2,
00198 } NLA_INTERNET, *PNLA_INTERNET;
00199 
00200 typedef struct _NLA_BLOB {
00201   struct {
00202     NLA_BLOB_DATA_TYPE type;
00203     DWORD dwSize;
00204     DWORD nextOffset;
00205   } header;
00206   union {
00207     CHAR rawData[1];
00208     struct {
00209       DWORD dwType;
00210       DWORD dwSpeed;
00211       CHAR adapterName[1];
00212     } interfaceData;
00213     struct {
00214       CHAR information[1];
00215     } locationData;
00216     struct {
00217       NLA_CONNECTIVITY_TYPE type;
00218       NLA_INTERNET internet;
00219     } connectivity;
00220     struct {
00221       struct {
00222         DWORD speed;
00223         DWORD type;
00224         DWORD state;
00225         WCHAR machineName[256];
00226         WCHAR sharedAdapterName[256];
00227       } remote;
00228     } ICS;
00229   } data;
00230 } NLA_BLOB, *PNLA_BLOB, * FAR LPNLA_BLOB;
00231 
00232 typedef INT
00233 (PASCAL FAR *LPFN_WSARECVMSG)(
00234   IN SOCKET s,
00235   IN OUT LPWSAMSG lpMsg,
00236   OUT LPDWORD lpdwNumberOfBytesRecvd OPTIONAL,
00237   IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL,
00238   IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL);
00239 
00240 #define WSAID_WSARECVMSG \
00241   {0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}}
00242 
00243 #endif /* (_WIN32_WINNT >= 0x0501) */
00244 
00245 #if(_WIN32_WINNT >= 0x0600)
00246 
00247 #define SIO_BSP_HANDLE          _WSAIOR(IOC_WS2,27)
00248 #define SIO_BSP_HANDLE_SELECT   _WSAIOR(IOC_WS2,28)
00249 #define SIO_BSP_HANDLE_POLL     _WSAIOR(IOC_WS2,29)
00250 
00251 #define SIO_BASE_HANDLE         _WSAIOR(IOC_WS2,34)
00252 
00253 #define SIO_EXT_SELECT          _WSAIORW(IOC_WS2,30)
00254 #define SIO_EXT_POLL            _WSAIORW(IOC_WS2,31)
00255 #define SIO_EXT_SENDMSG         _WSAIORW(IOC_WS2,32)
00256 
00257 typedef struct {
00258   int result;
00259   ULONG fds;
00260   INT timeout;
00261   WSAPOLLFD fdArray[0];
00262 } WSAPOLLDATA, *LPWSAPOLLDATA;
00263 
00264 typedef struct {
00265   LPWSAMSG lpMsg;
00266   DWORD dwFlags;
00267   LPDWORD lpNumberOfBytesSent;
00268   LPWSAOVERLAPPED lpOverlapped;
00269   LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine;
00270 } WSASENDMSG, *LPWSASENDMSG;
00271 
00272 typedef INT
00273 (PASCAL FAR *LPFN_WSASENDMSG)(
00274   IN SOCKET s,
00275   IN LPWSAMSG lpMsg,
00276   IN DWORD dwFlags,
00277   OUT LPDWORD lpNumberOfBytesSent OPTIONAL,
00278   IN OUT LPWSAOVERLAPPED lpOverlapped OPTIONAL,
00279   IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL);
00280 
00281 #define WSAID_WSASENDMSG
00282   {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}}
00283 
00284 typedef INT
00285 (WSAAPI *LPFN_WSAPOLL)(
00286   IN OUT LPWSAPOLLFD fdarray,
00287   IN ULONG nfds,
00288   IN INT timeout);
00289 
00290 #define WSAID_WSAPOLL \
00291   {0x18C76F85,0xDC66,0x4964,{0x97,0x2E,0x23,0xC2,0x72,0x38,0x31,0x2B}}
00292 
00293 #endif /* (_WIN32_WINNT >= 0x0600) */
00294 
00295 #if(_WIN32_WINNT < 0x0600)
00296 int
00297 PASCAL
00298 FAR
00299 WSARecvEx(
00300   IN SOCKET s,
00301   OUT char FAR *buf,
00302   IN int len,
00303   IN OUT int FAR *flags);
00304 #else
00305 INT
00306 PASCAL
00307 FAR
00308 WSARecvEx(
00309   IN SOCKET s,
00310   OUT CHAR FAR *buf,
00311   IN INT len,
00312   IN OUT INT FAR *flags);
00313 #endif /* (_WIN32_WINNT < 0x0600) */
00314 
00315 BOOL
00316 PASCAL
00317 FAR
00318 TransmitFile(
00319   IN SOCKET hSocket,
00320   IN HANDLE hFile,
00321   IN DWORD nNumberOfBytesToWrite,
00322   IN DWORD nNumberOfBytesPerSend,
00323   IN OUT LPOVERLAPPED lpOverlapped OPTIONAL,
00324   IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers OPTIONAL,
00325   IN DWORD dwReserved);
00326 
00327 BOOL
00328 PASCAL
00329 FAR
00330 AcceptEx(
00331   IN SOCKET sListenSocket,
00332   IN SOCKET sAcceptSocket,
00333   OUT PVOID lpOutputBuffer,
00334   IN DWORD dwReceiveDataLength,
00335   IN DWORD dwLocalAddressLength,
00336   IN DWORD dwRemoteAddressLength,
00337   OUT LPDWORD lpdwBytesReceived,
00338   IN OUT LPOVERLAPPED lpOverlapped);
00339 
00340 VOID
00341 PASCAL
00342 FAR
00343 GetAcceptExSockaddrs(
00344   IN PVOID lpOutputBuffer,
00345   IN DWORD dwReceiveDataLength,
00346   IN DWORD dwLocalAddressLength,
00347   IN DWORD dwRemoteAddressLength,
00348   OUT struct sockaddr **LocalSockaddr,
00349   OUT LPINT LocalSockaddrLength,
00350   OUT struct sockaddr **RemoteSockaddr,
00351   OUT LPINT RemoteSockaddrLength);
00352 
00353 #ifdef __cplusplus
00354 }
00355 #endif

Generated on Thu May 24 2012 04:32:34 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.