Windows2000/private/mvdm/inc/wowwsock.h

466 lines
13 KiB
C

/*++ BUILD Version: 0001
* WOW v1.0
* Copyright (c) 1991, Microsoft Corporation
* WOWWSOCK.H
* 16-bit Winsock API argument structures
* History:
* Created 02-Oct-1992 by David Treadwell (davidtr)
*/
//#include <windows.h>
//#include <winsock.h>
/* XLATOFF */
#pragma pack(1)
/* XLATON */
/*++
* Winsock data structures
*/
typedef WORD HSOCKET16;
typedef DWORD IN_ADDR16;
typedef struct _SOCKADDR16 { /* sa16 */
WORD sa_family;
BYTE sa_data[14];
} SOCKADDR16;
typedef SOCKADDR16 UNALIGNED *PSOCKADDR16;
typedef VPVOID VPSOCKADDR;
#define FD_SETSIZE 64
typedef struct _FD_SET16 { /* fd16 */
WORD fd_count;
HSOCKET16 fd_array[FD_SETSIZE];
} FD_SET16;
typedef FD_SET16 UNALIGNED *PFD_SET16;
typedef VPVOID VPFD_SET16;
#define WSADESCRIPTION_LEN 256
#define WSASYS_STATUS_LEN 128
typedef struct _WSADATA16 { /* wd16 */
WORD wVersion;
WORD wHighVersion;
CHAR szDescription[WSADESCRIPTION_LEN+1];
CHAR szSystemStatus[WSASYS_STATUS_LEN+1];
INT16 iMaxSockets;
INT16 iMaxUdpDg;
VPBYTE lpVendorInfo;
} WSADATA16;
typedef WSADATA16 UNALIGNED *PWSADATA16;
typedef VPVOID VPWSADATA16;
typedef struct _TIMEVAL16 { /* tv16 */
DWORD tv_sec; /* seconds */
DWORD tv_usec; /* and microseconds */
} TIMEVAL16;
typedef TIMEVAL16 *PTIMEVAL16;
typedef VPVOID VPTIMEVAL16;
typedef struct _HOSTENT16 { /* he16 */
VPSZ h_name;
VPVOID h_aliases;
WORD h_addrtype;
WORD h_length;
VPBYTE h_addr_list;
} HOSTENT16;
typedef HOSTENT16 *PHOSTENT16;
typedef VPVOID VPHOSTENT16;
typedef struct _PROTOENT16 { /* pe16 */
VPSZ p_name;
VPVOID p_aliases;
WORD p_proto;
} PROTOENT16;
typedef PROTOENT16 *PPROTOENT16;
typedef VPVOID VPPROTOENT16;
typedef struct _SERVENT16 { /* se16 */
VPSZ s_name;
VPVOID s_aliases;
WORD s_port;
VPSZ s_proto;
} SERVENT16;
typedef SERVENT16 *PSERVENT16;
typedef VPVOID VPSERVENT16;
typedef struct _NETENT16 { /* ne16 */
VPSZ n_name;
VPVOID n_aliases;
WORD n_addrtype;
DWORD n_net;
} NETENT16;
typedef NETENT16 *PNETENT16;
typedef VPVOID VPNETENT16;
/*++
* Winsock API IDs (equal to ordinal numbers)
*/
#define FUN_ACCEPT 1 //
#define FUN_BIND 2 //
#define FUN_CLOSESOCKET 3 //
#define FUN_CONNECT 4 //
#define FUN_GETPEERNAME 5 //
#define FUN_GETSOCKNAME 6 //
#define FUN_GETSOCKOPT 7 //
#define FUN_HTONL 8 //
#define FUN_HTONS 9 //
#define FUN_INET_ADDR 10 //
#define FUN_INET_NTOA 11 //
#define FUN_IOCTLSOCKET 12 //
#define FUN_LISTEN 13 //
#define FUN_NTOHL 14 //
#define FUN_NTOHS 15 //
#define FUN_RECV 16 //
#define FUN_RECVFROM 17 //
#define FUN_SELECT 18 //
#define FUN_SEND 19 //
#define FUN_SENDTO 20 //
#define FUN_SETSOCKOPT 21 //
#define FUN_SHUTDOWN 22 //
#define FUN_SOCKET 23 //
#define FUN_GETHOSTBYADDR 51 //
#define FUN_GETHOSTBYNAME 52 //
#define FUN_GETPROTOBYNAME 53 //
#define FUN_GETPROTOBYNUMBER 54 //
#define FUN_GETSERVBYNAME 55 //
#define FUN_GETSERVBYPORT 56 //
#define FUN_GETHOSTNAME 57 //
#define FUN_WSAASYNCSELECT 101 //
#define FUN_WSAASYNCGETHOSTBYADDR 102 //
#define FUN_WSAASYNCGETHOSTBYNAME 103 //
#define FUN_WSAASYNCGETPROTOBYNUMBER 104 //
#define FUN_WSAASYNCGETPROTOBYNAME 105 //
#define FUN_WSAASYNCGETSERVBYPORT 106 //
#define FUN_WSAASYNCGETSERVBYNAME 107 //
#define FUN_WSACANCELASYNCREQUEST 108 //
#define FUN_WSASETBLOCKINGHOOK 109 //
#define FUN_WSAUNHOOKBLOCKINGHOOK 110 //
#define FUN_WSAGETLASTERROR 111 //
#define FUN_WSASETLASTERROR 112 //
#define FUN_WSACANCELBLOCKINGCALL 113 //
#define FUN_WSAISBLOCKING 114 //
#define FUN_WSASTARTUP 115 //
#define FUN_WSACLEANUP 116 //
#define FUN___WSAFDISSET 151 //
/*++
Winsock function prototypes - the seemingly unimportant number in the
comment on each function MUST match the ones in the list above!!!
!! BE WARNED !!
*/
typedef struct _ACCEPT16 { /* ws1 */
VPWORD AddressLength;
VPSOCKADDR Address;
HSOCKET16 hSocket;
} ACCEPT16;
typedef ACCEPT16 UNALIGNED *PACCEPT16;
typedef struct _BIND16 { /* ws2 */
WORD AddressLength;
VPSOCKADDR Address;
HSOCKET16 hSocket;
} BIND16;
typedef BIND16 UNALIGNED *PBIND16;
typedef struct _CLOSESOCKET16 { /* ws3 */
HSOCKET16 hSocket;
} CLOSESOCKET16;
typedef CLOSESOCKET16 UNALIGNED *PCLOSESOCKET16;
typedef struct _CONNECT16 { /* ws4 */
WORD AddressLength;
VPSOCKADDR Address;
HSOCKET16 hSocket;
} CONNECT16;
typedef CONNECT16 UNALIGNED *PCONNECT16;
typedef struct _GETPEERNAME16 { /* ws5 */
VPWORD AddressLength;
VPSOCKADDR Address;
HSOCKET16 hSocket;
} GETPEERNAME16;
typedef GETPEERNAME16 UNALIGNED *PGETPEERNAME16;
typedef struct _GETSOCKNAME16 { /* ws6 */
VPWORD AddressLength;
VPSOCKADDR Address;
HSOCKET16 hSocket;
} GETSOCKNAME16;
typedef GETSOCKNAME16 UNALIGNED *PGETSOCKNAME16;
typedef struct _GETSOCKOPT16 { /* ws7 */
VPWORD OptionLength;
VPBYTE OptionValue;
WORD OptionName;
WORD Level;
HSOCKET16 hSocket;
} GETSOCKOPT16;
typedef GETSOCKOPT16 UNALIGNED *PGETSOCKOPT16;
typedef struct _HTONL16 { /* ws8 */
DWORD HostLong;
} HTONL16;
typedef HTONL16 UNALIGNED *PHTONL16;
typedef struct _HTONS16 { /* ws9 */
WORD HostShort;
} HTONS16;
typedef HTONS16 UNALIGNED *PHTONS16;
typedef struct _INET_ADDR16 { /* ws10 */
VPSZ cp;
} INET_ADDR16;
typedef INET_ADDR16 UNALIGNED *PINET_ADDR16;
typedef struct _INET_NTOA16 { /* ws11 */
IN_ADDR16 in;
} INET_NTOA16;
typedef INET_NTOA16 UNALIGNED *PINET_NTOA16;
typedef struct _IOCTLSOCKET16 { /* ws12 */
VPDWORD Argument;
DWORD Command;
HSOCKET16 hSocket;
} IOCTLSOCKET16;
typedef IOCTLSOCKET16 UNALIGNED *PIOCTLSOCKET16;
typedef struct _LISTEN16 { /* ws13 */
WORD Backlog;
HSOCKET16 hSocket;
} LISTEN16;
typedef LISTEN16 UNALIGNED *PLISTEN16;
typedef struct _NTOHL16 { /* ws14 */
DWORD NetLong;
} NTOHL16;
typedef NTOHL16 UNALIGNED *PNTOHL16;
typedef struct _NTOHS16 { /* ws15 */
WORD NetShort;
} NTOHS16;
typedef NTOHS16 UNALIGNED *PNTOHS16;
typedef struct _RECV16 { /* ws16 */
WORD Flags;
WORD BufferLength;
VPBYTE Buffer;
HSOCKET16 hSocket;
} RECV16;
typedef RECV16 UNALIGNED *PRECV16;
typedef struct _RECVFROM16 { /* ws17 */
VPWORD AddressLength;
VPSOCKADDR Address;
WORD Flags;
WORD BufferLength;
VPBYTE Buffer;
HSOCKET16 hSocket;
} RECVFROM16;
typedef RECVFROM16 UNALIGNED *PRECVFROM16;
typedef struct _SELECT16 { /* ws18 */
VPTIMEVAL16 Timeout;
VPFD_SET16 Exceptfds;
VPFD_SET16 Writefds;
VPFD_SET16 Readfds;
WORD HandleCount;
} SELECT16;
typedef SELECT16 UNALIGNED *PSELECT16;
typedef struct _SEND16 { /* ws19 */
WORD Flags;
WORD BufferLength;
VPBYTE Buffer;
HSOCKET16 hSocket;
} SEND16;
typedef SEND16 UNALIGNED *PSEND16;
typedef struct _SENDTO16 { /* ws20 */
WORD AddressLength;
VPSOCKADDR Address;
WORD Flags;
WORD BufferLength;
VPBYTE Buffer;
HSOCKET16 hSocket;
} SENDTO16;
typedef SENDTO16 UNALIGNED *PSENDTO16;
typedef struct _SETSOCKOPT16 { /* ws21 */
WORD OptionLength;
VPBYTE OptionValue;
WORD OptionName;
WORD Level;
HSOCKET16 hSocket;
} SETSOCKOPT16;
typedef SETSOCKOPT16 UNALIGNED *PSETSOCKOPT16;
typedef struct _SHUTDOWN16 { /* ws22 */
WORD How;
HSOCKET16 hSocket;
} SHUTDOWN16;
typedef SHUTDOWN16 UNALIGNED *PSHUTDOWN16;
typedef struct _SOCKET16 { /* ws23 */
WORD Protocol;
WORD Type;
WORD AddressFamily;
} SOCKET16;
typedef SOCKET16 UNALIGNED *PSOCKET16;
typedef struct _GETHOSTBYADDR16 { /* ws51 */
WORD Type;
WORD Length;
VPBYTE Address;
} GETHOSTBYADDR16;
typedef GETHOSTBYADDR16 UNALIGNED *PGETHOSTBYADDR16;
typedef struct _GETHOSTBYNAME16 { /* ws52 */
VPSZ Name;
} GETHOSTBYNAME16;
typedef GETHOSTBYNAME16 UNALIGNED *PGETHOSTBYNAME16;
typedef struct _GETPROTOBYNAME16 { /* ws53 */
VPSZ Name;
} GETPROTOBYNAME16;
typedef GETPROTOBYNAME16 UNALIGNED *PGETPROTOBYNAME16;
typedef struct _GETPROTOBYNUMBER16 { /* ws54 */
WORD Protocol;
} GETPROTOBYNUMBER16;
typedef GETPROTOBYNUMBER16 UNALIGNED *PGETPROTOBYNUMBER16;
typedef struct _GETSERVBYNAME16 { /* ws55 */
VPSZ Protocol;
VPSZ Name;
} GETSERVBYNAME16;
typedef GETSERVBYNAME16 UNALIGNED *PGETSERVBYNAME16;
typedef struct _GETSERVBYPORT16 { /* ws56 */
VPSZ Protocol;
WORD Port;
} GETSERVBYPORT16;
typedef GETSERVBYPORT16 UNALIGNED *PGETSERVBYPORT16;
typedef struct _GETHOSTNAME16 { /* ws57 */
WORD NameLength;
VPSZ Name;
} GETHOSTNAME16;
typedef GETHOSTNAME16 UNALIGNED *PGETHOSTNAME16;
typedef struct _WSAASYNCSELECT16 { /* ws101 */
DWORD lEvent;
WORD wMsg;
HWND16 hWnd;
HSOCKET16 hSocket;
} WSAASYNCSELECT16;
typedef WSAASYNCSELECT16 UNALIGNED *PWSAASYNCSELECT16;
typedef struct _WSAASYNCGETHOSTBYADDR16 { /* ws102 */
WORD BufferLength;
VPBYTE Buffer;
WORD Type;
WORD Length;
VPBYTE Address;
WORD wMsg;
HWND16 hWnd;
} WSAASYNCGETHOSTBYADDR16;
typedef WSAASYNCGETHOSTBYADDR16 UNALIGNED *PWSAASYNCGETHOSTBYADDR16;
typedef struct _WSAASYNCGETHOSTBYNAME16 { /* ws103 */
WORD BufferLength;
VPBYTE Buffer;
VPSZ Name;
WORD wMsg;
HWND16 hWnd;
} WSAASYNCGETHOSTBYNAME16;
typedef WSAASYNCGETHOSTBYNAME16 UNALIGNED *PWSAASYNCGETHOSTBYNAME16;
typedef struct _WSAASYNCGETPROTOBYNUMBER16 { /* ws104 */
WORD BufferLength;
VPBYTE Buffer;
WORD Number;
WORD wMsg;
HWND16 hWnd;
} WSAASYNCGETPROTOBYNUMBER16;
typedef WSAASYNCGETPROTOBYNUMBER16 UNALIGNED *PWSAASYNCGETPROTOBYNUMBER16;
typedef struct _WSAASYNCGETPROTOBYNAME16 { /* ws105 */
WORD BufferLength;
VPBYTE Buffer;
VPSZ Name;
WORD wMsg;
HWND16 hWnd;
} WSAASYNCGETPROTOBYNAME16;
typedef WSAASYNCGETPROTOBYNAME16 UNALIGNED *PWSAASYNCGETPROTOBYNAME16;
typedef struct _WSAASYNCGETSERVBYPORT16 { /* ws106 */
WORD BufferLength;
VPBYTE Buffer;
VPSZ Protocol;
WORD Port;
WORD wMsg;
HWND16 hWnd;
} WSAASYNCGETSERVBYPORT16;
typedef WSAASYNCGETSERVBYPORT16 UNALIGNED *PWSAASYNCGETSERVBYPORT16;
typedef struct _WSAASYNCGETSERVBYNAME16 { /* ws107 */
WORD BufferLength;
VPBYTE Buffer;
VPSZ Protocol;
VPSZ Name;
WORD wMsg;
HWND16 hWnd;
} WSAASYNCGETSERVBYNAME16;
typedef WSAASYNCGETSERVBYNAME16 UNALIGNED *PWSAASYNCGETSERVBYNAME16;
typedef struct _WSACANCELASYNCREQUEST16 { /* ws108 */
WORD hAsyncTaskHandle;
} WSACANCELASYNCREQUEST16;
typedef WSACANCELASYNCREQUEST16 UNALIGNED *PWSACANCELASYNCREQUEST16;
typedef struct _WSASETBLOCKINGHOOK16 { /* ws109 */
VPWNDPROC lpBlockFunc;
} WSASETBLOCKINGHOOK16;
typedef WSASETBLOCKINGHOOK16 UNALIGNED *PWSASETBLOCKINGHOOK16;
typedef struct _WSASETLASTERROR16 { /* ws112 */
WORD Error;
} WSASETLASTERROR16;
typedef WSASETLASTERROR16 UNALIGNED *PWSASETLASTERROR16;
typedef struct _WSASTARTUP16 { /* ws115 */
VPWSADATA16 lpWSAData;
WORD wVersionRequired;
} WSASTARTUP16;
typedef WSASTARTUP16 UNALIGNED *PWSASTARTUP16;
typedef struct ___WSAFDISSET16 { /* ws151 */
VPFD_SET16 Set;
HSOCKET16 hSocket;
} __WSAFDISSET16;
typedef __WSAFDISSET16 UNALIGNED *P__WSAFDISSET16;
/* XLATOFF */
#pragma pack()
/* XLATON */
#define FUN___WSAFDISSET 151