This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/mswsock.h

286 lines
9.6 KiB
C
Raw Normal View History

/*
* mswsock.h Windows Sockets extension functions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _MSWSOCK_
#define _MSWSOCK_
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Socket options */
#define SO_CONNDATA 0x7000
#define SO_CONNOPT 0x7001
#define SO_DISCDATA 0x7002
#define SO_DISCOPT 0x7003
#define SO_CONNDATALEN 0x7004
#define SO_CONNOPTLEN 0x7005
#define SO_DISCDATALEN 0x7006
#define SO_DISCOPTLEN 0x7007
#define SO_OPENTYPE 0x7008
#define SO_MAXDG 0x7009
#define SO_MAXPATHDG 0x700A
#define SO_UPDATE_ACCEPT_CONTEXT 0x700B
#define SO_CONNECT_TIME 0x700C
#if (_WIN32_WINNT >= 0x0501)
#define SO_UPDATE_CONNECT_CONTEXT 0x7010
#endif
/* Socket open types */
#define SO_SYNCHRONOUS_ALERT 0x10
#define SO_SYNCHRONOUS_NONALERT 0x20
/* TCP options */
#define TCP_BSDURGENT 0x7000
/* Socket I/O control codes */
#define SIO_UPD_CONNRESET _WSAIOW( IOC_VENDOR, 12 )
#if (_WIN32_WINNT < 0x0600) && (_WIN32_WINNT >= 0x0501)
#define SIO_SOCKET_CLOSE_NOTIFY _WSAIOW( IOC_VENDOR, 13 )
#endif
#define SIO_UPD_NETRESET _WSAIOW( IOC_VENDOR, 15 )
#if (_WIN32_WINNT >= 0x0600)
#define SIO_BSP_HANDLE _WSAIOR( IOC_WS2, 27 )
#define SIO_BSP_HANDLE_SELECT _WSAIOR( IOC_WS2, 28 )
#define SIO_BSP_HANDLE_POLL _WSAIOR( IOC_WS2, 29 )
#define SIO_EXT_SELECT _WSAIORW( IOC_WS2, 30 )
#define SIO_EXT_POLL _WSAIORW( IOC_WS2, 31 )
#define SIO_EXT_SENDMSG _WSAIORW( IOC_WS2, 32 )
#define SIO_BASE_HANDLE _WSAIOR( IOC_WS2, 34 )
#endif
/* TransmitFile() flags */
#if (_WIN32_WINNT >= 0x0501)
#define TF_DISCONNECT 0x00000001L
#define TF_REUSE_SOCKET 0x00000002L
#define TF_WRITE_BEHIND 0x00000004L
#define TF_USE_DEFAULT_WORKER 0x00000000L
#define TF_USE_SYSTEM_THREAD 0x00000010L
#define TF_USE_KERNEL_APC 0x00000020L
#endif
/* WSAID_TRANSMITPACKETS element flags */
#if (_WIN32_WINNT >= 0x0501)
#define TP_ELEMENT_MEMORY 1L
#define TP_ELEMENT_FILE 2L
#define TP_ELEMENT_EOP 4L
#endif
/* WSAID_TRANSMITPACKETS flags */
#if (_WIN32_WINNT >= 0x0501)
#define TP_DISCONNECT TF_DISCONNECT
#define TP_REUSE_SOCKET TF_REUSE_SOCKET
#define TP_USE_DEFAULT_WORKER TF_USE_DEFAULT_WORKER
#define TP_USE_SYSTEM_THREAD TF_USE_SYSTEM_THREAD
#define TP_USE_KERNEL_APC TF_USE_KERNEL_APC
#endif
/* WSAID_DISCONNECTEX flags */
#if (_WIN32_WINNT >= 0x0501)
#define DE_REUSE_SOCKET TF_REUSE_SOCKET
#endif
/* Function identifiers */
#define WSAID_TRANSMITFILE \
{ 0xB5367DF0, 0xCBAC, 0x11CF, { 0x95, 0xCA, 0x00, 0x80, 0x5F, 0x48, 0xA1, 0x92 } }
#define WSAID_ACCEPTEX \
{ 0xB5367DF1, 0xCBAC, 0x11CF, { 0x95, 0xCA, 0x00, 0x80, 0x5F, 0x48, 0xA1, 0x92 } }
#define WSAID_GETACCEPTEXSOCKADDRS \
{ 0xB5367DF2, 0xCBAC, 0x11CF, { 0x95, 0xCA, 0x00, 0x80, 0x5F, 0x48, 0xA1, 0x92 } }
#if (_WIN32_WINNT >= 0x0501)
#define WSAID_TRANSMITPACKETS \
{ 0xD9689DA0, 0x1F90, 0x11D3, { 0x99, 0x71, 0x00, 0xC0, 0x4F, 0x68, 0xC8, 0x76 } }
#define WSAID_CONNECTEX \
{ 0x25A207B9, 0xDDF3, 0x4660, { 0x8E, 0xE9, 0x76, 0xE5, 0x8C, 0x74, 0x06, 0x3E } }
#define WSAID_DISCONNECTEX \
{ 0x7FDA2E11, 0x8630, 0x436F, { 0xA0, 0x31, 0xF5, 0x36, 0xA6, 0xEE, 0xC1, 0x57 } }
#define WSAID_WSARECVMSG \
{ 0xF689D7C8, 0x6F1F, 0x436B, { 0x8A, 0x53, 0xE5, 0x4F, 0xE3, 0x51, 0xC3, 0x22 } }
#endif
#if (_WIN32_WINNT >= 0x0600)
#define WSAID_WSASENGMSG \
{ 0xA441E712, 0x754F, 0x43CA, { 0x84, 0xA7, 0x0D, 0xEE, 0x44, 0xCF, 0x60, 0x6D } }
#define WSAID_WSAPOLL \
{ 0x18C76F85, 0xDC66, 0x4964, { 0x97, 0x2E, 0x23, 0xC2, 0x72, 0x38, 0x31, 0x2B } }
#endif
/* Network location awareness identifiers */
#if (_WIN32_WINNT >= 0x0501)
#define NLA_NAMESPACE_GUID \
{ 0x6642243A, 0x3BA8, 0x4AA6, { 0xBA, 0xA5, 0x2E, 0x0B, 0xD7, 0x1F, 0xDD, 0x83 } }
#define NLA_SERVICE_CLASS_GUID \
{ 0x0037E515, 0xB5C9, 0x4A43, { 0xBA, 0xDA, 0x8B, 0x48, 0xA8, 0x7A, 0xD2, 0x39 } }
#endif
/* Network location awareness flags */
#if (_WIN32_WINNT >= 0x0501)
#define NLA_ALLUSERS_NETWORK 0x00000001L
#define NLA_FRIENDLY_NAME 0x00000002L
#endif
/* TransmitFile() buffers */
typedef struct _TRANSMIT_FILE_BUFFERS {
LPVOID Head;
DWORD HeadLength;
LPVOID Tail;
DWORD TailLength;
} TRANSMIT_FILE_BUFFERS;
typedef TRANSMIT_FILE_BUFFERS *PTRANSMIT_FILE_BUFFERS;
typedef TRANSMIT_FILE_BUFFERS *LPTRANSMIT_FILE_BUFFERS;
/* WSAID_TRANSMITPACKETS element */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _TRANSMIT_PACKETS_ELEMENT {
ULONG dwElFlags;
ULONG cLength;
union {
struct {
LARGE_INTEGER nFileOffset;
HANDLE hFile;
};
PVOID pBuffer;
};
} TRANSMIT_PACKETS_ELEMENT;
typedef TRANSMIT_PACKETS_ELEMENT *PTRANSMIT_PACKETS_ELEMENT;
typedef TRANSMIT_PACKETS_ELEMENT *LPTRANSMIT_PACKETS_ELEMENT;
#endif
/* WSAPoll() data */
#if (_WIN32_WINNT >= 0x0600)
typedef struct {
int result;
ULONG fds;
INT timeout;
WSAPOLLFD fdArray[1];
} WSAPOLLDATA;
typedef WSAPOLLDATA *LPWSAPOLLDATA;
#endif
/* WSASendMsg() data */
#if (_WIN32_WINNT >= 0x0600)
typedef struct {
LPWSAMSG lpMsg;
DWORD dwFlags;
LPDWORD lpNumberOfBytesSent;
LPWSAOVERLAPPED lpOverlapped;
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine;
} WSASENDMSG;
typedef WSASENDMSG *LPWSASENDMSG;
#endif
/* Function pointers */
typedef BOOL (PASCAL *LPFN_TRANSMITFILE)( SOCKET, HANDLE, DWORD, DWORD, LPOVERLAPPED, LPTRANSMIT_FILE_BUFFERS, DWORD );
typedef BOOL (PASCAL *LPFN_ACCEPTEX)( SOCKET, SOCKET, PVOID, DWORD, DWORD, DWORD, LPDWORD, LPOVERLAPPED );
typedef VOID (PASCAL *LPFN_GETACCEPTEXSOCKADDRS)( PVOID, DWORD, DWORD, DWORD, struct sockaddr **, LPINT, struct sockaddr **, LPINT );
#if (_WIN32_WINNT >= 0x0501)
typedef BOOL (PASCAL *LPFN_TRANSMITPACKETS)( SOCKET, LPTRANSMIT_PACKETS_ELEMENT, DWORD, DWORD, LPOVERLAPPED, DWORD );
typedef BOOL (PASCAL *LPFN_CONNECTEX)( SOCKET, const struct sockaddr *, int, PVOID, DWORD, LPDWORD, LPOVERLAPPED );
typedef BOOL (PASCAL *LPFN_DISCONNECTEX)( SOCKET, LPOVERLAPPED, DWORD, DWORD );
typedef INT (PASCAL *LPFN_WSARECVMSG)( SOCKET, LPWSAMSG, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE );
#endif
#if (_WIN32_WINNT >= 0x0600)
typedef INT (PASCAL *LPFN_WSASENDMSG)( SOCKET, LPWSAMSG, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE );
typedef INT (PASCAL *LPFN_WSAPOLL)( LPWSAPOLLFD, ULONG, INT );
#endif
/* Network location awareness blob data types */
#if (_WIN32_WINNT >= 0x0501)
typedef enum _NLA_BLOB_DATA_TYPE {
NLA_RAW_DATA = 0,
NLA_INTERFACE = 1,
NLA_802_1X_LOCATION = 2,
NLA_CONNECTIVITY = 3,
NLA_ICS = 4,
} NLA_BLOB_DATA_TYPE;
typedef NLA_BLOB_DATA_TYPE *PNLA_BLOB_DATA_TYPE;
#endif
/* Network location awareness connectivity types */
#if (_WIN32_WINNT >= 0x0501)
typedef enum _NLA_CONNECTIVITY_TYPE {
NLA_NETWORK_AD_HOC = 0,
NLA_NETWORK_MANAGED = 1,
NLA_NETWORK_UNMANAGED = 2,
NLA_NETWORK_UNKNOWN = 3,
} NLA_CONNECTIVITY_TYPE;
typedef NLA_CONNECTIVITY_TYPE *PNLA_CONNECTIVITY_TYPE;
#endif
/* Network location awareness Internet values */
#if (_WIN32_WINNT >= 0x0501)
typedef enum _NLA_INTERNET {
NLA_INTERNET_UNKNOWN = 0,
NLA_INTERNET_NO = 1,
NLA_INTERNET_YES = 2
} NLA_INTERNET;
typedef NLA_INTERNET *PNLA_INTERNET;
#endif
/* Network location awareness blob */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _NLA_BLOB {
struct {
NLA_BLOB_DATA_TYPE type;
DWORD dwSize;
DWORD nextOffset;
} header;
union {
CHAR rawData[1];
struct {
DWORD dwType;
DWORD dwSpeed;
CHAR adapterName[1];
} interfaceData;
struct {
CHAR information[1];
} locationData;
struct {
NLA_CONNECTIVITY_TYPE type;
NLA_INTERNET internet;
} connectivity;
struct {
struct {
DWORD speed;
DWORD type;
DWORD state;
WCHAR machineName[256];
WCHAR sharedAdapterName[256];
} remote;
} ICS;
} data;
} NLA_BLOB;
typedef NLA_BLOB *PNLA_BLOB;
typedef NLA_BLOB *LPNLA_BLOB;
#endif
/* Functions in MSWSOCK.DLL */
BOOL PASCAL AcceptEx( SOCKET, SOCKET, PVOID, DWORD, DWORD, DWORD, LPDWORD, LPOVERLAPPED );
VOID PASCAL GetAcceptExSockaddrs( PVOID, DWORD, DWORD, DWORD, struct sockaddr **, LPINT, struct sockaddr **, LPINT );
BOOL PASCAL TransmitFile( SOCKET, HANDLE, DWORD, DWORD, LPOVERLAPPED, LPTRANSMIT_FILE_BUFFERS, DWORD );
#if (_WIN32_WINNT >= 0x0600)
int PASCAL WSARecvEx( SOCKET, CHAR *, INT, INT * );
#else
int PASCAL WSARecvEx( SOCKET, char *, int, int * );
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _MSWSOCK_ */