Reactos
at master 92 lines 4.1 kB view raw
1#ifndef _WSAHELP_H 2#define _WSAHELP_H 3 4#include <winsock2.h> 5#include <ntsecapi.h> 6#ifdef __cplusplus 7extern "C" { 8#endif /* __cplusplus */ 9 10#define WSH_NOTIFY_BIND 0x00000001 11#define WSH_NOTIFY_LISTEN 0x00000002 12#define WSH_NOTIFY_CONNECT 0x00000004 13#define WSH_NOTIFY_ACCEPT 0x00000008 14#define WSH_NOTIFY_SHUTDOWN_RECEIVE 0x00000010 15#define WSH_NOTIFY_SHUTDOWN_SEND 0x00000020 16#define WSH_NOTIFY_SHUTDOWN_ALL 0x00000040 17#define WSH_NOTIFY_CLOSE 0x00000080 18#define WSH_NOTIFY_CONNECT_ERROR 0x00000100 19#define SOL_INTERNAL 0xFFFE 20#define SO_CONTEXT 1 21 22#ifndef RC_INVOKED 23typedef enum _SOCKADDR_ADDRESS_INFO { 24 SockaddrAddressInfoNormal, 25 SockaddrAddressInfoWildcard, 26 SockaddrAddressInfoBroadcast, 27 SockaddrAddressInfoLoopback 28} SOCKADDR_ADDRESS_INFO, *PSOCKADDR_ADDRESS_INFO; 29typedef enum _SOCKADDR_ENDPOINT_INFO { 30 SockaddrEndpointInfoNormal, 31 SockaddrEndpointInfoWildcard, 32 SockaddrEndpointInfoReserved 33} SOCKADDR_ENDPOINT_INFO, *PSOCKADDR_ENDPOINT_INFO; 34typedef struct _WINSOCK_MAPPING { 35 DWORD Rows; 36 DWORD Columns; 37 struct { 38 DWORD AddressFamily; 39 DWORD SocketType; 40 DWORD Protocol; 41 } Mapping[1]; 42} WINSOCK_MAPPING, *PWINSOCK_MAPPING; 43typedef struct _SOCKADDR_INFO { 44 SOCKADDR_ADDRESS_INFO AddressInfo; 45 SOCKADDR_ENDPOINT_INFO EndpointInfo; 46} SOCKADDR_INFO, *PSOCKADDR_INFO; 47 48INT WINAPI WSHAddressToString(LPSOCKADDR,INT,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD); 49INT WINAPI WSHEnumProtocols(LPINT,LPWSTR,LPVOID,LPDWORD); 50INT WINAPI WSHGetBroadcastSockaddr(PVOID,PSOCKADDR,PINT); 51INT WINAPI WSHGetProviderGuid(LPWSTR,LPGUID); 52INT WINAPI WSHGetSockaddrType(PSOCKADDR,DWORD,PSOCKADDR_INFO); 53INT WINAPI WSHGetSocketInformation(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,LPINT); 54INT WINAPI WSHGetWildcardSockaddr(PVOID,PSOCKADDR,PINT); 55DWORD WINAPI WSHGetWinsockMapping(PWINSOCK_MAPPING,DWORD); 56INT WINAPI WSHGetWSAProtocolInfo(LPWSTR,LPWSAPROTOCOL_INFOW*,LPDWORD); 57INT WINAPI WSHIoctl(PVOID,SOCKET,HANDLE,HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD, 58LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPBOOL); 59INT WINAPI WSHJoinLeaf(PVOID,SOCKET,HANDLE,HANDLE,PVOID,SOCKET,PSOCKADDR, 60DWORD,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD); 61INT WINAPI WSHNotify(PVOID,SOCKET,HANDLE,HANDLE,DWORD); 62INT WINAPI WSHOpenSocket(PINT,PINT,PINT,PUNICODE_STRING,PVOID,PDWORD); 63INT WINAPI WSHOpenSocket2(PINT,PINT,PINT,GROUP,DWORD,PUNICODE_STRING,PVOID*,PDWORD); 64INT WINAPI WSHSetSocketInformation(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT); 65INT WINAPI WSHStringToAddress(LPWSTR,DWORD,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPDWORD); 66 67typedef INT (WINAPI *PWSH_ADDRESS_TO_STRING)(LPSOCKADDR,INT,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD); 68typedef INT (WINAPI *PWSH_ENUM_PROTOCOLS)(LPINT,LPWSTR,LPVOID,LPDWORD); 69typedef INT (WINAPI *PWSH_GET_BROADCAST_SOCKADDR)(PVOID,PSOCKADDR,PINT); 70typedef INT (WINAPI *PWSH_GET_PROVIDER_GUID)(LPWSTR,LPGUID); 71typedef INT (WINAPI *PWSH_GET_SOCKADDR_TYPE)(PSOCKADDR,DWORD,PSOCKADDR_INFO); 72typedef INT (WINAPI *PWSH_GET_SOCKET_INFORMATION)(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,LPINT); 73typedef INT (WINAPI *PWSH_GET_WILDCARD_SOCKADDR)(PVOID,PSOCKADDR,PINT); 74typedef DWORD (WINAPI *PWSH_GET_WINSOCK_MAPPING)(PWINSOCK_MAPPING,DWORD); 75typedef INT (WINAPI *PWSH_GET_WSAPROTOCOL_INFO)(LPWSTR,LPWSAPROTOCOL_INFOW*,LPDWORD); 76typedef INT (WINAPI *PWSH_IOCTL)(PVOID,SOCKET,HANDLE,HANDLE,DWORD,LPVOID,DWORD, 77 LPVOID,DWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPBOOL); 78typedef INT (WINAPI *PWSH_JOIN_LEAF)(PVOID,SOCKET,HANDLE,HANDLE,PVOID,SOCKET, 79 PSOCKADDR,DWORD,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD); 80typedef INT (WINAPI *PWSH_NOTIFY)(PVOID,SOCKET,HANDLE,HANDLE,DWORD); 81typedef INT (WINAPI *PWSH_OPEN_SOCKET)(PINT,PINT,PINT,PUNICODE_STRING,PVOID,PDWORD); 82typedef INT (WINAPI *PWSH_OPEN_SOCKET2)(PINT,PINT,PINT,GROUP,DWORD,PUNICODE_STRING,PVOID*,PDWORD); 83typedef INT (WINAPI *PWSH_SET_SOCKET_INFORMATION)(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT); 84typedef INT (WINAPI *PWSH_STRING_TO_ADDRESS)(LPWSTR,DWORD,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPDWORD); 85 86#endif /* RC_INVOKED */ 87 88#ifdef __cplusplus 89} 90#endif /* __cplusplus */ 91 92#endif /* _WSAHELP_H */