mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[PSDK]
- Add missing ws2ipdef.h definitions. - Group related definitions. svn path=/branches/header-work/; revision=46591
This commit is contained in:
parent
106198108d
commit
e6d8f850c7
6 changed files with 1176 additions and 592 deletions
|
@ -299,7 +299,7 @@ WSARecvEx(
|
|||
OUT char FAR *buf,
|
||||
IN int len,
|
||||
IN OUT int FAR *flags);
|
||||
#else //(_WIN32_WINNT < 0x0600)
|
||||
#else
|
||||
INT
|
||||
PASCAL
|
||||
FAR
|
||||
|
@ -308,7 +308,7 @@ WSARecvEx(
|
|||
OUT CHAR FAR *buf,
|
||||
IN INT len,
|
||||
IN OUT INT FAR *flags);
|
||||
#endif //(_WIN32_WINNT < 0x0600)
|
||||
#endif /* (_WIN32_WINNT < 0x0600) */
|
||||
|
||||
BOOL
|
||||
PASCAL
|
||||
|
|
|
@ -314,38 +314,9 @@ int PASCAL gethostname(char*,int);
|
|||
#define INADDR_BROADCAST (u_long)0xffffffff
|
||||
#define INADDR_NONE 0xffffffff
|
||||
|
||||
struct sockaddr_in {
|
||||
short sin_family;
|
||||
u_short sin_port;
|
||||
struct in_addr sin_addr;
|
||||
char sin_zero[8];
|
||||
};
|
||||
|
||||
#define WSADESCRIPTION_LEN 256
|
||||
#define WSASYS_STATUS_LEN 128
|
||||
|
||||
typedef struct WSAData {
|
||||
WORD wVersion;
|
||||
WORD wHighVersion;
|
||||
#ifdef _WIN64
|
||||
unsigned short iMaxSockets;
|
||||
unsigned short iMaxUdpDg;
|
||||
char *lpVendorInfo;
|
||||
char szDescription[WSADESCRIPTION_LEN+1];
|
||||
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
||||
#else
|
||||
char szDescription[WSADESCRIPTION_LEN+1];
|
||||
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
||||
unsigned short iMaxSockets;
|
||||
unsigned short iMaxUdpDg;
|
||||
char *lpVendorInfo;
|
||||
} WSADATA, FAR *LPWSADATA;
|
||||
|
||||
/*
|
||||
* Note that the next 5 IP defines are specific to WinSock 1.1 (wsock32.dll).
|
||||
* They will cause errors or unexpected results if used with the
|
||||
* (gs)etsockopts exported from the WinSock 2 lib, ws2_32.dll. Refer ws2tcpip.h.
|
||||
*/
|
||||
#define IP_MULTICAST_IF 2
|
||||
#define IP_MULTICAST_TTL 3
|
||||
#define IP_MULTICAST_LOOP 4
|
||||
|
@ -359,11 +330,6 @@ typedef struct WSAData {
|
|||
#define IP_DEFAULT_MULTICAST_LOOP 1
|
||||
#define IP_MAX_MEMBERSHIPS 20
|
||||
|
||||
struct ip_mreq {
|
||||
struct in_addr imr_multiaddr;
|
||||
struct in_addr imr_interface;
|
||||
};
|
||||
|
||||
#define INVALID_SOCKET (SOCKET)(~0)
|
||||
#define SOCKET_ERROR (-1)
|
||||
|
||||
|
@ -403,11 +369,6 @@ struct ip_mreq {
|
|||
#define AF_ATM 22
|
||||
#define AF_INET6 23
|
||||
|
||||
struct sockproto {
|
||||
u_short sp_family;
|
||||
u_short sp_protocol;
|
||||
};
|
||||
|
||||
#define PF_UNSPEC AF_UNSPEC
|
||||
#define PF_UNIX AF_UNIX
|
||||
#define PF_INET AF_INET
|
||||
|
@ -510,6 +471,79 @@ struct sockproto {
|
|||
|
||||
#define WSANO_ADDRESS WSANO_DATA
|
||||
|
||||
#define TF_DISCONNECT 0x01
|
||||
#define TF_REUSE_SOCKET 0x02
|
||||
#define TF_WRITE_BEHIND 0x04
|
||||
|
||||
#define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e)
|
||||
#define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error)
|
||||
#define WSAGETASYNCBUFLEN(l) LOWORD(l)
|
||||
#define WSAGETASYNCERROR(l) HIWORD(l)
|
||||
#define WSAGETSELECTEVENT(l) LOWORD(l)
|
||||
#define WSAGETSELECTERROR(l) HIWORD(l)
|
||||
|
||||
typedef struct sockaddr SOCKADDR;
|
||||
typedef struct sockaddr *PSOCKADDR;
|
||||
typedef struct sockaddr *LPSOCKADDR;
|
||||
typedef struct sockaddr_in SOCKADDR_IN;
|
||||
typedef struct sockaddr_in *PSOCKADDR_IN;
|
||||
typedef struct sockaddr_in *LPSOCKADDR_IN;
|
||||
typedef struct linger LINGER;
|
||||
typedef struct linger *PLINGER;
|
||||
typedef struct linger *LPLINGER;
|
||||
typedef struct in_addr IN_ADDR;
|
||||
typedef struct in_addr *PIN_ADDR;
|
||||
typedef struct in_addr *LPIN_ADDR;
|
||||
typedef struct fd_set FD_SET;
|
||||
typedef struct fd_set *PFD_SET;
|
||||
typedef struct fd_set *LPFD_SET;
|
||||
typedef struct hostent HOSTENT;
|
||||
typedef struct hostent *PHOSTENT;
|
||||
typedef struct hostent *LPHOSTENT;
|
||||
typedef struct servent SERVENT;
|
||||
typedef struct servent *PSERVENT;
|
||||
typedef struct servent *LPSERVENT;
|
||||
typedef struct protoent PROTOENT;
|
||||
typedef struct protoent *PPROTOENT;
|
||||
typedef struct protoent *LPPROTOENT;
|
||||
typedef struct timeval TIMEVAL;
|
||||
typedef struct timeval *PTIMEVAL;
|
||||
typedef struct timeval *LPTIMEVAL;
|
||||
|
||||
struct sockaddr_in {
|
||||
short sin_family;
|
||||
u_short sin_port;
|
||||
struct in_addr sin_addr;
|
||||
char sin_zero[8];
|
||||
};
|
||||
|
||||
typedef struct WSAData {
|
||||
WORD wVersion;
|
||||
WORD wHighVersion;
|
||||
#ifdef _WIN64
|
||||
unsigned short iMaxSockets;
|
||||
unsigned short iMaxUdpDg;
|
||||
char *lpVendorInfo;
|
||||
char szDescription[WSADESCRIPTION_LEN+1];
|
||||
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
||||
#else
|
||||
char szDescription[WSADESCRIPTION_LEN+1];
|
||||
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
||||
unsigned short iMaxSockets;
|
||||
unsigned short iMaxUdpDg;
|
||||
char *lpVendorInfo;
|
||||
} WSADATA, FAR *LPWSADATA;
|
||||
|
||||
struct ip_mreq {
|
||||
struct in_addr imr_multiaddr;
|
||||
struct in_addr imr_interface;
|
||||
};
|
||||
|
||||
struct sockproto {
|
||||
u_short sp_family;
|
||||
u_short sp_protocol;
|
||||
};
|
||||
|
||||
SOCKET
|
||||
PASCAL FAR
|
||||
accept(
|
||||
|
@ -831,10 +865,6 @@ typedef struct _TRANSMIT_FILE_BUFFERS {
|
|||
DWORD TailLength;
|
||||
} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS;
|
||||
|
||||
#define TF_DISCONNECT 0x01
|
||||
#define TF_REUSE_SOCKET 0x02
|
||||
#define TF_WRITE_BEHIND 0x04
|
||||
|
||||
BOOL
|
||||
PASCAL FAR
|
||||
TransmitFile(
|
||||
|
@ -870,41 +900,6 @@ GetAcceptExSockaddrs(
|
|||
OUT struct sockaddr **RemoteSockaddr,
|
||||
OUT LPINT RemoteSockaddrLength);
|
||||
|
||||
#define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e)
|
||||
#define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error)
|
||||
#define WSAGETASYNCBUFLEN(l) LOWORD(l)
|
||||
#define WSAGETASYNCERROR(l) HIWORD(l)
|
||||
#define WSAGETSELECTEVENT(l) LOWORD(l)
|
||||
#define WSAGETSELECTERROR(l) HIWORD(l)
|
||||
|
||||
typedef struct sockaddr SOCKADDR;
|
||||
typedef struct sockaddr *PSOCKADDR;
|
||||
typedef struct sockaddr *LPSOCKADDR;
|
||||
typedef struct sockaddr_in SOCKADDR_IN;
|
||||
typedef struct sockaddr_in *PSOCKADDR_IN;
|
||||
typedef struct sockaddr_in *LPSOCKADDR_IN;
|
||||
typedef struct linger LINGER;
|
||||
typedef struct linger *PLINGER;
|
||||
typedef struct linger *LPLINGER;
|
||||
typedef struct in_addr IN_ADDR;
|
||||
typedef struct in_addr *PIN_ADDR;
|
||||
typedef struct in_addr *LPIN_ADDR;
|
||||
typedef struct fd_set FD_SET;
|
||||
typedef struct fd_set *PFD_SET;
|
||||
typedef struct fd_set *LPFD_SET;
|
||||
typedef struct hostent HOSTENT;
|
||||
typedef struct hostent *PHOSTENT;
|
||||
typedef struct hostent *LPHOSTENT;
|
||||
typedef struct servent SERVENT;
|
||||
typedef struct servent *PSERVENT;
|
||||
typedef struct servent *LPSERVENT;
|
||||
typedef struct protoent PROTOENT;
|
||||
typedef struct protoent *PPROTOENT;
|
||||
typedef struct protoent *LPPROTOENT;
|
||||
typedef struct timeval TIMEVAL;
|
||||
typedef struct timeval *PTIMEVAL;
|
||||
typedef struct timeval *LPTIMEVAL;
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
|
||||
#ifdef IPV6STRICT
|
||||
|
|
|
@ -270,47 +270,11 @@ struct protoent {
|
|||
#define IMPLINK_LOWEXPER 156
|
||||
#define IMPLINK_HIGHEXPER 158
|
||||
|
||||
#ifndef s_addr
|
||||
|
||||
#define s_addr S_un.S_addr
|
||||
#define s_host S_un.S_un_b.s_b2
|
||||
#define s_net S_un.S_un_b.s_b1
|
||||
#define s_imp S_un.S_un_w.s_w2
|
||||
#define s_impno S_un.S_un_b.s_b4
|
||||
#define s_lh S_un.S_un_b.s_b3
|
||||
|
||||
typedef struct in_addr {
|
||||
union {
|
||||
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
|
||||
struct { u_short s_w1,s_w2; } S_un_w;
|
||||
u_long S_addr;
|
||||
} S_un;
|
||||
} IN_ADDR, *PIN_ADDR;
|
||||
|
||||
#endif /* s_addr */
|
||||
|
||||
#define ADDR_ANY INADDR_ANY
|
||||
|
||||
#define WSADESCRIPTION_LEN 256
|
||||
#define WSASYS_STATUS_LEN 128
|
||||
|
||||
typedef struct WSAData {
|
||||
WORD wVersion;
|
||||
WORD wHighVersion;
|
||||
#ifdef _WIN64
|
||||
unsigned short iMaxSockets;
|
||||
unsigned short iMaxUdpDg;
|
||||
char *lpVendorInfo;
|
||||
char szDescription[WSADESCRIPTION_LEN+1];
|
||||
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
||||
#else
|
||||
char szDescription[WSADESCRIPTION_LEN+1];
|
||||
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
||||
unsigned short iMaxSockets;
|
||||
unsigned short iMaxUdpDg;
|
||||
char *lpVendorInfo;
|
||||
} WSADATA, FAR *LPWSADATA;
|
||||
|
||||
#define INVALID_SOCKET (SOCKET)(~0)
|
||||
|
||||
#define SOCKET_ERROR (-1)
|
||||
|
@ -356,11 +320,6 @@ typedef struct WSAData {
|
|||
#endif
|
||||
#define PVD_CONFIG 0x3001
|
||||
|
||||
struct sockproto {
|
||||
u_short sp_family;
|
||||
u_short sp_protocol;
|
||||
};
|
||||
|
||||
#define PF_UNSPEC AF_UNSPEC
|
||||
#define PF_UNIX AF_UNIX
|
||||
#define PF_INET AF_INET
|
||||
|
@ -517,64 +476,6 @@ struct sockproto {
|
|||
|
||||
#endif /* !WSABASEERR */
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
#define WSAAPI FAR PASCAL
|
||||
#define WSAEVENT HANDLE
|
||||
#define LPWSAEVENT LPHANDLE
|
||||
#define WSAOVERLAPPED OVERLAPPED
|
||||
typedef struct _OVERLAPPED *LPWSAOVERLAPPED;
|
||||
#define WSA_IO_PENDING (ERROR_IO_PENDING)
|
||||
#define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE)
|
||||
#define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE)
|
||||
#define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER)
|
||||
#define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY)
|
||||
#define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED)
|
||||
#define WSA_INVALID_EVENT ((WSAEVENT)NULL)
|
||||
#define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
|
||||
#define WSA_WAIT_FAILED ((DWORD)-1L)
|
||||
#define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0)
|
||||
#define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION)
|
||||
#define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT)
|
||||
#define WSA_INFINITE (INFINITE)
|
||||
|
||||
#else /* WIN16 */
|
||||
|
||||
#define WSAAPI FAR PASCAL
|
||||
typedef DWORD WSAEVENT, FAR * LPWSAEVENT;
|
||||
|
||||
typedef struct _WSAOVERLAPPED {
|
||||
DWORD Internal;
|
||||
DWORD InternalHigh;
|
||||
DWORD Offset;
|
||||
DWORD OffsetHigh;
|
||||
WSAEVENT hEvent;
|
||||
} WSAOVERLAPPED, FAR * LPWSAOVERLAPPED;
|
||||
|
||||
#define WSA_IO_PENDING (WSAEWOULDBLOCK)
|
||||
#define WSA_IO_INCOMPLETE (WSAEWOULDBLOCK)
|
||||
#define WSA_INVALID_HANDLE (WSAENOTSOCK)
|
||||
#define WSA_INVALID_PARAMETER (WSAEINVAL)
|
||||
#define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS)
|
||||
#define WSA_OPERATION_ABORTED (WSAEINTR)
|
||||
|
||||
#define WSA_INVALID_EVENT ((WSAEVENT)NULL)
|
||||
#define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
|
||||
#define WSA_WAIT_FAILED ((DWORD)-1L)
|
||||
#define WSA_WAIT_EVENT_0 ((DWORD)0)
|
||||
#define WSA_WAIT_TIMEOUT ((DWORD)0x102L)
|
||||
#define WSA_INFINITE ((DWORD)-1L)
|
||||
|
||||
#endif /* WIN32 */
|
||||
|
||||
#include <qos.h>
|
||||
|
||||
typedef struct _QualityOfService {
|
||||
FLOWSPEC SendingFlowspec;
|
||||
FLOWSPEC ReceivingFlowspec;
|
||||
WSABUF ProviderSpecific;
|
||||
} QOS, *LPQOS;
|
||||
|
||||
#define CF_ACCEPT 0x0000
|
||||
#define CF_REJECT 0x0001
|
||||
#define CF_DEFER 0x0002
|
||||
|
@ -582,86 +483,16 @@ typedef struct _QualityOfService {
|
|||
#define SD_SEND 0x01
|
||||
#define SD_BOTH 0x02
|
||||
|
||||
typedef unsigned int GROUP;
|
||||
|
||||
#define SG_UNCONSTRAINED_GROUP 0x01
|
||||
#define SG_CONSTRAINED_GROUP 0x02
|
||||
|
||||
typedef struct _WSANETWORKEVENTS {
|
||||
LONG lNetworkEvents;
|
||||
int iErrorCode[FD_MAX_EVENTS];
|
||||
} WSANETWORKEVENTS, *LPWSANETWORKEVENTS;
|
||||
|
||||
#ifndef GUID_DEFINED
|
||||
#include <guiddef.h>
|
||||
#endif
|
||||
|
||||
#define MAX_PROTOCOL_CHAIN 7
|
||||
|
||||
#define BASE_PROTOCOL 1
|
||||
#define LAYERED_PROTOCOL 0
|
||||
|
||||
typedef struct _WSAPROTOCOLCHAIN {
|
||||
int ChainLen;
|
||||
DWORD ChainEntries[MAX_PROTOCOL_CHAIN];
|
||||
} WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN;
|
||||
|
||||
#define WSAPROTOCOL_LEN 255
|
||||
|
||||
typedef struct _WSAPROTOCOL_INFOA {
|
||||
DWORD dwServiceFlags1;
|
||||
DWORD dwServiceFlags2;
|
||||
DWORD dwServiceFlags3;
|
||||
DWORD dwServiceFlags4;
|
||||
DWORD dwProviderFlags;
|
||||
GUID ProviderId;
|
||||
DWORD dwCatalogEntryId;
|
||||
WSAPROTOCOLCHAIN ProtocolChain;
|
||||
int iVersion;
|
||||
int iAddressFamily;
|
||||
int iMaxSockAddr;
|
||||
int iMinSockAddr;
|
||||
int iSocketType;
|
||||
int iProtocol;
|
||||
int iProtocolMaxOffset;
|
||||
int iNetworkByteOrder;
|
||||
int iSecurityScheme;
|
||||
DWORD dwMessageSize;
|
||||
DWORD dwProviderReserved;
|
||||
CHAR szProtocol[WSAPROTOCOL_LEN+1];
|
||||
} WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA;
|
||||
|
||||
typedef struct _WSAPROTOCOL_INFOW {
|
||||
DWORD dwServiceFlags1;
|
||||
DWORD dwServiceFlags2;
|
||||
DWORD dwServiceFlags3;
|
||||
DWORD dwServiceFlags4;
|
||||
DWORD dwProviderFlags;
|
||||
GUID ProviderId;
|
||||
DWORD dwCatalogEntryId;
|
||||
WSAPROTOCOLCHAIN ProtocolChain;
|
||||
int iVersion;
|
||||
int iAddressFamily;
|
||||
int iMaxSockAddr;
|
||||
int iMinSockAddr;
|
||||
int iSocketType;
|
||||
int iProtocol;
|
||||
int iProtocolMaxOffset;
|
||||
int iNetworkByteOrder;
|
||||
int iSecurityScheme;
|
||||
DWORD dwMessageSize;
|
||||
DWORD dwProviderReserved;
|
||||
WCHAR szProtocol[WSAPROTOCOL_LEN+1];
|
||||
} WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW;
|
||||
|
||||
#ifdef UNICODE
|
||||
typedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO;
|
||||
typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO;
|
||||
#else
|
||||
typedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO;
|
||||
typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO;
|
||||
#endif
|
||||
|
||||
#define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001
|
||||
#define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002
|
||||
#define PFL_HIDDEN 0x00000004
|
||||
|
@ -705,81 +536,9 @@ typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO;
|
|||
#define WSA_FLAG_MULTIPOINT_D_LEAF 0x10
|
||||
#define WSA_FLAG_ACCESS_SYSTEM_SECURITY 0x40
|
||||
|
||||
typedef int
|
||||
(CALLBACK *LPCONDITIONPROC)(
|
||||
IN LPWSABUF lpCallerId,
|
||||
IN LPWSABUF lpCallerData,
|
||||
IN OUT LPQOS lpSQOS,
|
||||
IN OUT LPQOS lpGQOS,
|
||||
IN LPWSABUF lpCalleeId,
|
||||
IN LPWSABUF lpCalleeData,
|
||||
OUT GROUP FAR *g,
|
||||
IN DWORD_PTR dwCallbackData);
|
||||
|
||||
typedef void
|
||||
(CALLBACK *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(
|
||||
IN DWORD dwError,
|
||||
IN DWORD cbTransferred,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN DWORD dwFlags);
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
|
||||
#define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25)
|
||||
|
||||
typedef enum _WSACOMPLETIONTYPE {
|
||||
NSP_NOTIFY_IMMEDIATELY = 0,
|
||||
NSP_NOTIFY_HWND,
|
||||
NSP_NOTIFY_EVENT,
|
||||
NSP_NOTIFY_PORT,
|
||||
NSP_NOTIFY_APC
|
||||
} WSACOMPLETIONTYPE, * PWSACOMPLETIONTYPE, *LPWSACOMPLETIONTYPE;
|
||||
|
||||
typedef struct _WSACOMPLETION {
|
||||
WSACOMPLETIONTYPE Type;
|
||||
union {
|
||||
struct {
|
||||
HWND hWnd;
|
||||
UINT uMsg;
|
||||
WPARAM context;
|
||||
} WindowMessage;
|
||||
struct {
|
||||
LPWSAOVERLAPPED lpOverlapped;
|
||||
} Event;
|
||||
struct {
|
||||
LPWSAOVERLAPPED lpOverlapped;
|
||||
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc;
|
||||
} Apc;
|
||||
struct {
|
||||
LPWSAOVERLAPPED lpOverlapped;
|
||||
HANDLE hPort;
|
||||
ULONG_PTR Key;
|
||||
} Port;
|
||||
} Parameters;
|
||||
} WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION;
|
||||
|
||||
#endif /* (_WIN32_WINNT >= 0x0501) */
|
||||
|
||||
#define TH_NETDEV 0x00000001
|
||||
#define TH_TAPI 0x00000002
|
||||
|
||||
#ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */
|
||||
#define __BLOB_T_DEFINED
|
||||
/* wine is using a diff define */
|
||||
#ifndef _tagBLOB_DEFINED
|
||||
#define _tagBLOB_DEFINED
|
||||
#define _BLOB_DEFINED
|
||||
#define _LPBLOB_DEFINED
|
||||
|
||||
typedef struct _BLOB {
|
||||
ULONG cbSize;
|
||||
BYTE *pBlobData;
|
||||
} BLOB,*PBLOB,*LPBLOB;
|
||||
|
||||
#endif /* _tagBLOB_DEFINED */
|
||||
|
||||
#endif /* __BLOB_T_DEFINED */
|
||||
|
||||
#define SERVICE_MULTIPLE 0x00000001
|
||||
|
||||
#define NS_ALL 0
|
||||
|
@ -846,6 +605,282 @@ typedef struct _BLOB {
|
|||
#define SERVICE_TYPE_VALUE_OBJECTID SERVICE_TYPE_VALUE_OBJECTIDA
|
||||
#endif
|
||||
|
||||
#define LUP_DEEP 0x0001
|
||||
#define LUP_CONTAINERS 0x0002
|
||||
#define LUP_NOCONTAINERS 0x0004
|
||||
#define LUP_NEAREST 0x0008
|
||||
#define LUP_RETURN_NAME 0x0010
|
||||
#define LUP_RETURN_TYPE 0x0020
|
||||
#define LUP_RETURN_VERSION 0x0040
|
||||
#define LUP_RETURN_COMMENT 0x0080
|
||||
#define LUP_RETURN_ADDR 0x0100
|
||||
#define LUP_RETURN_BLOB 0x0200
|
||||
#define LUP_RETURN_ALIASES 0x0400
|
||||
#define LUP_RETURN_QUERY_STRING 0x0800
|
||||
#define LUP_RETURN_ALL 0x0FF0
|
||||
#define LUP_RES_SERVICE 0x8000
|
||||
#define LUP_FLUSHCACHE 0x1000
|
||||
#define LUP_FLUSHPREVIOUS 0x2000
|
||||
#define LUP_NON_AUTHORITATIVE 0x4000
|
||||
#define LUP_SECURE 0x8000
|
||||
#define LUP_RETURN_PREFERRED_NAMES 0x10000
|
||||
#define LUP_ADDRCONFIG 0x00100000
|
||||
#define LUP_DUAL_ADDR 0x00200000
|
||||
#define LUP_FILESERVER 0x00400000
|
||||
|
||||
#define RESULT_IS_ALIAS 0x0001
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
#define RESULT_IS_ADDED 0x0010
|
||||
#define RESULT_IS_CHANGED 0x0020
|
||||
#define RESULT_IS_DELETED 0x0040
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifndef s_addr
|
||||
|
||||
#define s_addr S_un.S_addr
|
||||
#define s_host S_un.S_un_b.s_b2
|
||||
#define s_net S_un.S_un_b.s_b1
|
||||
#define s_imp S_un.S_un_w.s_w2
|
||||
#define s_impno S_un.S_un_b.s_b4
|
||||
#define s_lh S_un.S_un_b.s_b3
|
||||
|
||||
typedef struct in_addr {
|
||||
union {
|
||||
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
|
||||
struct { u_short s_w1,s_w2; } S_un_w;
|
||||
u_long S_addr;
|
||||
} S_un;
|
||||
} IN_ADDR, *PIN_ADDR;
|
||||
|
||||
#endif /* s_addr */
|
||||
|
||||
typedef struct WSAData {
|
||||
WORD wVersion;
|
||||
WORD wHighVersion;
|
||||
#ifdef _WIN64
|
||||
unsigned short iMaxSockets;
|
||||
unsigned short iMaxUdpDg;
|
||||
char *lpVendorInfo;
|
||||
char szDescription[WSADESCRIPTION_LEN+1];
|
||||
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
||||
#else
|
||||
char szDescription[WSADESCRIPTION_LEN+1];
|
||||
char szSystemStatus[WSASYS_STATUS_LEN+1];
|
||||
unsigned short iMaxSockets;
|
||||
unsigned short iMaxUdpDg;
|
||||
char *lpVendorInfo;
|
||||
} WSADATA, FAR *LPWSADATA;
|
||||
|
||||
struct sockproto {
|
||||
u_short sp_family;
|
||||
u_short sp_protocol;
|
||||
};
|
||||
|
||||
#ifdef WIN32
|
||||
|
||||
#define WSAAPI FAR PASCAL
|
||||
#define WSAEVENT HANDLE
|
||||
#define LPWSAEVENT LPHANDLE
|
||||
#define WSAOVERLAPPED OVERLAPPED
|
||||
typedef struct _OVERLAPPED *LPWSAOVERLAPPED;
|
||||
#define WSA_IO_PENDING (ERROR_IO_PENDING)
|
||||
#define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE)
|
||||
#define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE)
|
||||
#define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER)
|
||||
#define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY)
|
||||
#define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED)
|
||||
#define WSA_INVALID_EVENT ((WSAEVENT)NULL)
|
||||
#define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
|
||||
#define WSA_WAIT_FAILED ((DWORD)-1L)
|
||||
#define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0)
|
||||
#define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION)
|
||||
#define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT)
|
||||
#define WSA_INFINITE (INFINITE)
|
||||
|
||||
#else /* WIN16 */
|
||||
|
||||
#define WSAAPI FAR PASCAL
|
||||
typedef DWORD WSAEVENT, FAR * LPWSAEVENT;
|
||||
|
||||
typedef struct _WSAOVERLAPPED {
|
||||
DWORD Internal;
|
||||
DWORD InternalHigh;
|
||||
DWORD Offset;
|
||||
DWORD OffsetHigh;
|
||||
WSAEVENT hEvent;
|
||||
} WSAOVERLAPPED, FAR * LPWSAOVERLAPPED;
|
||||
|
||||
#define WSA_IO_PENDING (WSAEWOULDBLOCK)
|
||||
#define WSA_IO_INCOMPLETE (WSAEWOULDBLOCK)
|
||||
#define WSA_INVALID_HANDLE (WSAENOTSOCK)
|
||||
#define WSA_INVALID_PARAMETER (WSAEINVAL)
|
||||
#define WSA_NOT_ENOUGH_MEMORY (WSAENOBUFS)
|
||||
#define WSA_OPERATION_ABORTED (WSAEINTR)
|
||||
|
||||
#define WSA_INVALID_EVENT ((WSAEVENT)NULL)
|
||||
#define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
|
||||
#define WSA_WAIT_FAILED ((DWORD)-1L)
|
||||
#define WSA_WAIT_EVENT_0 ((DWORD)0)
|
||||
#define WSA_WAIT_TIMEOUT ((DWORD)0x102L)
|
||||
#define WSA_INFINITE ((DWORD)-1L)
|
||||
|
||||
#endif /* WIN32 */
|
||||
|
||||
#include <qos.h>
|
||||
|
||||
typedef struct _QualityOfService {
|
||||
FLOWSPEC SendingFlowspec;
|
||||
FLOWSPEC ReceivingFlowspec;
|
||||
WSABUF ProviderSpecific;
|
||||
} QOS, *LPQOS;
|
||||
|
||||
typedef unsigned int GROUP;
|
||||
|
||||
typedef struct _WSANETWORKEVENTS {
|
||||
LONG lNetworkEvents;
|
||||
int iErrorCode[FD_MAX_EVENTS];
|
||||
} WSANETWORKEVENTS, *LPWSANETWORKEVENTS;
|
||||
|
||||
#ifndef GUID_DEFINED
|
||||
#include <guiddef.h>
|
||||
#endif
|
||||
|
||||
typedef struct _WSAPROTOCOLCHAIN {
|
||||
int ChainLen;
|
||||
DWORD ChainEntries[MAX_PROTOCOL_CHAIN];
|
||||
} WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN;
|
||||
|
||||
typedef struct _WSAPROTOCOL_INFOA {
|
||||
DWORD dwServiceFlags1;
|
||||
DWORD dwServiceFlags2;
|
||||
DWORD dwServiceFlags3;
|
||||
DWORD dwServiceFlags4;
|
||||
DWORD dwProviderFlags;
|
||||
GUID ProviderId;
|
||||
DWORD dwCatalogEntryId;
|
||||
WSAPROTOCOLCHAIN ProtocolChain;
|
||||
int iVersion;
|
||||
int iAddressFamily;
|
||||
int iMaxSockAddr;
|
||||
int iMinSockAddr;
|
||||
int iSocketType;
|
||||
int iProtocol;
|
||||
int iProtocolMaxOffset;
|
||||
int iNetworkByteOrder;
|
||||
int iSecurityScheme;
|
||||
DWORD dwMessageSize;
|
||||
DWORD dwProviderReserved;
|
||||
CHAR szProtocol[WSAPROTOCOL_LEN+1];
|
||||
} WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA;
|
||||
|
||||
typedef struct _WSAPROTOCOL_INFOW {
|
||||
DWORD dwServiceFlags1;
|
||||
DWORD dwServiceFlags2;
|
||||
DWORD dwServiceFlags3;
|
||||
DWORD dwServiceFlags4;
|
||||
DWORD dwProviderFlags;
|
||||
GUID ProviderId;
|
||||
DWORD dwCatalogEntryId;
|
||||
WSAPROTOCOLCHAIN ProtocolChain;
|
||||
int iVersion;
|
||||
int iAddressFamily;
|
||||
int iMaxSockAddr;
|
||||
int iMinSockAddr;
|
||||
int iSocketType;
|
||||
int iProtocol;
|
||||
int iProtocolMaxOffset;
|
||||
int iNetworkByteOrder;
|
||||
int iSecurityScheme;
|
||||
DWORD dwMessageSize;
|
||||
DWORD dwProviderReserved;
|
||||
WCHAR szProtocol[WSAPROTOCOL_LEN+1];
|
||||
} WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW;
|
||||
|
||||
#ifdef UNICODE
|
||||
typedef WSAPROTOCOL_INFOW WSAPROTOCOL_INFO;
|
||||
typedef LPWSAPROTOCOL_INFOW LPWSAPROTOCOL_INFO;
|
||||
#else
|
||||
typedef WSAPROTOCOL_INFOA WSAPROTOCOL_INFO;
|
||||
typedef LPWSAPROTOCOL_INFOA LPWSAPROTOCOL_INFO;
|
||||
#endif
|
||||
|
||||
typedef int
|
||||
(CALLBACK *LPCONDITIONPROC)(
|
||||
IN LPWSABUF lpCallerId,
|
||||
IN LPWSABUF lpCallerData,
|
||||
IN OUT LPQOS lpSQOS,
|
||||
IN OUT LPQOS lpGQOS,
|
||||
IN LPWSABUF lpCalleeId,
|
||||
IN LPWSABUF lpCalleeData,
|
||||
OUT GROUP FAR *g,
|
||||
IN DWORD_PTR dwCallbackData);
|
||||
|
||||
typedef void
|
||||
(CALLBACK *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(
|
||||
IN DWORD dwError,
|
||||
IN DWORD cbTransferred,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN DWORD dwFlags);
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
|
||||
#define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25)
|
||||
|
||||
typedef enum _WSACOMPLETIONTYPE {
|
||||
NSP_NOTIFY_IMMEDIATELY = 0,
|
||||
NSP_NOTIFY_HWND,
|
||||
NSP_NOTIFY_EVENT,
|
||||
NSP_NOTIFY_PORT,
|
||||
NSP_NOTIFY_APC
|
||||
} WSACOMPLETIONTYPE, * PWSACOMPLETIONTYPE, *LPWSACOMPLETIONTYPE;
|
||||
|
||||
typedef struct _WSACOMPLETION {
|
||||
WSACOMPLETIONTYPE Type;
|
||||
union {
|
||||
struct {
|
||||
HWND hWnd;
|
||||
UINT uMsg;
|
||||
WPARAM context;
|
||||
} WindowMessage;
|
||||
struct {
|
||||
LPWSAOVERLAPPED lpOverlapped;
|
||||
} Event;
|
||||
struct {
|
||||
LPWSAOVERLAPPED lpOverlapped;
|
||||
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc;
|
||||
} Apc;
|
||||
struct {
|
||||
LPWSAOVERLAPPED lpOverlapped;
|
||||
HANDLE hPort;
|
||||
ULONG_PTR Key;
|
||||
} Port;
|
||||
} Parameters;
|
||||
} WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION;
|
||||
|
||||
#endif /* (_WIN32_WINNT >= 0x0501) */
|
||||
|
||||
#ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */
|
||||
#define __BLOB_T_DEFINED
|
||||
/* wine is using a diff define */
|
||||
#ifndef _tagBLOB_DEFINED
|
||||
#define _tagBLOB_DEFINED
|
||||
#define _BLOB_DEFINED
|
||||
#define _LPBLOB_DEFINED
|
||||
|
||||
typedef struct _BLOB {
|
||||
ULONG cbSize;
|
||||
BYTE *pBlobData;
|
||||
} BLOB,*PBLOB,*LPBLOB;
|
||||
|
||||
#endif /* _tagBLOB_DEFINED */
|
||||
|
||||
#endif /* __BLOB_T_DEFINED */
|
||||
|
||||
typedef struct _AFPROTOCOLS {
|
||||
INT iAddressFamily;
|
||||
INT iProtocol;
|
||||
|
@ -947,36 +982,6 @@ typedef PWSAQUERYSET2A PWSAQUERYSET2;
|
|||
typedef LPWSAQUERYSET2A LPWSAQUERYSET2;
|
||||
#endif /* UNICODE */
|
||||
|
||||
#define LUP_DEEP 0x0001
|
||||
#define LUP_CONTAINERS 0x0002
|
||||
#define LUP_NOCONTAINERS 0x0004
|
||||
#define LUP_NEAREST 0x0008
|
||||
#define LUP_RETURN_NAME 0x0010
|
||||
#define LUP_RETURN_TYPE 0x0020
|
||||
#define LUP_RETURN_VERSION 0x0040
|
||||
#define LUP_RETURN_COMMENT 0x0080
|
||||
#define LUP_RETURN_ADDR 0x0100
|
||||
#define LUP_RETURN_BLOB 0x0200
|
||||
#define LUP_RETURN_ALIASES 0x0400
|
||||
#define LUP_RETURN_QUERY_STRING 0x0800
|
||||
#define LUP_RETURN_ALL 0x0FF0
|
||||
#define LUP_RES_SERVICE 0x8000
|
||||
#define LUP_FLUSHCACHE 0x1000
|
||||
#define LUP_FLUSHPREVIOUS 0x2000
|
||||
#define LUP_NON_AUTHORITATIVE 0x4000
|
||||
#define LUP_SECURE 0x8000
|
||||
#define LUP_RETURN_PREFERRED_NAMES 0x10000
|
||||
#define LUP_ADDRCONFIG 0x00100000
|
||||
#define LUP_DUAL_ADDR 0x00200000
|
||||
#define LUP_FILESERVER 0x00400000
|
||||
|
||||
#define RESULT_IS_ALIAS 0x0001
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
#define RESULT_IS_ADDED 0x0010
|
||||
#define RESULT_IS_CHANGED 0x0020
|
||||
#define RESULT_IS_DELETED 0x0040
|
||||
#endif
|
||||
|
||||
typedef enum _WSAESETSERVICEOP {
|
||||
RNRSERVICE_REGISTER=0,
|
||||
RNRSERVICE_DEREGISTER,
|
||||
|
|
|
@ -21,13 +21,6 @@
|
|||
#define NS_BTH 16
|
||||
#endif
|
||||
|
||||
typedef struct _SOCKADDR_BTH {
|
||||
USHORT addressFamily;
|
||||
BTH_ADDR btAddr;
|
||||
GUID serviceClassId;
|
||||
ULONG port;
|
||||
} SOCKADDR_BTH, *PSOCKADDR_BTH;
|
||||
|
||||
DEFINE_GUID(SVCID_BTH_PROVIDER, 0x6aa63e0, 0x7d60, 0x41ff, 0xaf, 0xb2, 0x3e, 0xe6, 0xd2, 0xd9, 0x39, 0x2d);
|
||||
|
||||
#define BTH_ADDR_STRING_SIZE 12
|
||||
|
@ -50,15 +43,6 @@ DEFINE_GUID(SVCID_BTH_PROVIDER, 0x6aa63e0, 0x7d60, 0x41ff, 0xaf, 0xb2, 0x3e, 0xe
|
|||
|
||||
#define BTH_SDP_VERSION 1
|
||||
|
||||
typedef struct _BTH_SET_SERVICE {
|
||||
PULONG pSdpVersion;
|
||||
HANDLE *pRecordHandle;
|
||||
ULONG fCodService;
|
||||
ULONG Reserved[5];
|
||||
ULONG ulRecordLength;
|
||||
UCHAR pRecord[1];
|
||||
} BTH_SET_SERVICE, *PBTH_SET_SERVICE;
|
||||
|
||||
#define SDP_DEFAULT_INQUIRY_SECONDS 6
|
||||
#define SDP_MAX_INQUIRY_SECONDS 60
|
||||
|
||||
|
@ -68,19 +52,6 @@ typedef struct _BTH_SET_SERVICE {
|
|||
#define SDP_SERVICE_ATTRIBUTE_REQUEST 2
|
||||
#define SDP_SERVICE_SEARCH_ATTRIBUTE_REQUEST 3
|
||||
|
||||
typedef struct _BTH_QUERY_DEVICE {
|
||||
ULONG LAP;
|
||||
UCHAR length;
|
||||
} BTH_QUERY_DEVICE, *PBTH_QUERY_DEVICE;
|
||||
|
||||
typedef struct _BTH_QUERY_SERVICE {
|
||||
ULONG type;
|
||||
ULONG serviceHandle;
|
||||
SdpQueryUuid uuids[MAX_UUIDS_IN_QUERY];
|
||||
ULONG numRange;
|
||||
SdpAttributeRange pRange[1];
|
||||
} BTH_QUERY_SERVICE, *PBTH_QUERY_SERVICE;
|
||||
|
||||
#define BTHNS_RESULT_DEVICE_CONNECTED 0x00010000
|
||||
#define BTHNS_RESULT_DEVICE_REMEMBERED 0x00020000
|
||||
#define BTHNS_RESULT_DEVICE_AUTHENTICATED 0x00040000
|
||||
|
@ -108,20 +79,11 @@ typedef struct _BTH_QUERY_SERVICE {
|
|||
#define MSC_BREAK_BIT BIT(1)
|
||||
#define MSC_SET_BREAK_LENGTH(b, l) ((b) = ((b)&0x3) | (((l)&0xf) << 4))
|
||||
|
||||
typedef struct _RFCOMM_MSC_DATA {
|
||||
UCHAR Signals;
|
||||
UCHAR Break;
|
||||
} RFCOMM_MSC_DATA, *PRFCOMM_MSC_DATA;
|
||||
|
||||
#define RLS_ERROR 0x01
|
||||
#define RLS_OVERRUN 0x02
|
||||
#define RLS_PARITY 0x04
|
||||
#define RLS_FRAMING 0x08
|
||||
|
||||
typedef struct _RFCOMM_RLS_DATA {
|
||||
UCHAR LineStatus;
|
||||
} RFCOMM_RLS_DATA, *PRFCOMM_RLS_DATA;
|
||||
|
||||
#define RPN_BAUD_2400 0
|
||||
#define RPN_BAUD_4800 1
|
||||
#define RPN_BAUD_7200 2
|
||||
|
@ -174,6 +136,50 @@ typedef struct _RFCOMM_RLS_DATA {
|
|||
#define RFCOMM_CMD_RPN_REQUEST 4
|
||||
#define RFCOMM_CMD_RPN_RESPONSE 5
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
typedef struct _SOCKADDR_BTH {
|
||||
USHORT addressFamily;
|
||||
BTH_ADDR btAddr;
|
||||
GUID serviceClassId;
|
||||
ULONG port;
|
||||
} SOCKADDR_BTH, *PSOCKADDR_BTH;
|
||||
|
||||
typedef struct _BTH_SET_SERVICE {
|
||||
PULONG pSdpVersion;
|
||||
HANDLE *pRecordHandle;
|
||||
ULONG fCodService;
|
||||
ULONG Reserved[5];
|
||||
ULONG ulRecordLength;
|
||||
UCHAR pRecord[1];
|
||||
} BTH_SET_SERVICE, *PBTH_SET_SERVICE;
|
||||
|
||||
typedef struct _BTH_QUERY_DEVICE {
|
||||
ULONG LAP;
|
||||
UCHAR length;
|
||||
} BTH_QUERY_DEVICE, *PBTH_QUERY_DEVICE;
|
||||
|
||||
typedef struct _BTH_QUERY_SERVICE {
|
||||
ULONG type;
|
||||
ULONG serviceHandle;
|
||||
SdpQueryUuid uuids[MAX_UUIDS_IN_QUERY];
|
||||
ULONG numRange;
|
||||
SdpAttributeRange pRange[1];
|
||||
} BTH_QUERY_SERVICE, *PBTH_QUERY_SERVICE;
|
||||
|
||||
typedef struct _RFCOMM_MSC_DATA {
|
||||
UCHAR Signals;
|
||||
UCHAR Break;
|
||||
} RFCOMM_MSC_DATA, *PRFCOMM_MSC_DATA;
|
||||
|
||||
typedef struct _RFCOMM_RLS_DATA {
|
||||
UCHAR LineStatus;
|
||||
} RFCOMM_RLS_DATA, *PRFCOMM_RLS_DATA;
|
||||
|
||||
typedef struct _RFCOMM_RPN_DATA {
|
||||
UCHAR Baud;
|
||||
UCHAR Data;
|
||||
|
|
|
@ -130,43 +130,6 @@ typedef USHORT ADDRESS_FAMILY;
|
|||
|
||||
#define TCP_NODELAY 0x0001
|
||||
|
||||
typedef struct sockaddr {
|
||||
#if (_WIN32_WINNT < 0x0600)
|
||||
u_short sa_family;
|
||||
#else
|
||||
ADDRESS_FAMILY sa_family;
|
||||
#endif
|
||||
CHAR sa_data[14];
|
||||
} SOCKADDR, *PSOCKADDR, FAR *LPSOCKADDR;
|
||||
|
||||
#ifndef __CSADDR_DEFINED__
|
||||
#define __CSADDR_DEFINED__
|
||||
|
||||
typedef struct _SOCKET_ADDRESS {
|
||||
LPSOCKADDR lpSockaddr;
|
||||
INT iSockaddrLength;
|
||||
} SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
|
||||
|
||||
typedef struct _SOCKET_ADDRESS_LIST {
|
||||
INT iAddressCount;
|
||||
SOCKET_ADDRESS Address[1];
|
||||
} SOCKET_ADDRESS_LIST, *PSOCKET_ADDRESS_LIST, FAR *LPSOCKET_ADDRESS_LIST;
|
||||
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
#define SIZEOF_SOCKET_ADDRESS_LIST(AddressCount) \
|
||||
(FIELD_OFFSET(SOCKET_ADDRESS_LIST, Address) + \
|
||||
AddressCount * sizeof(SOCKET_ADDRESS))
|
||||
#endif
|
||||
|
||||
typedef struct _CSADDR_INFO {
|
||||
SOCKET_ADDRESS LocalAddr;
|
||||
SOCKET_ADDRESS RemoteAddr;
|
||||
INT iSocketType;
|
||||
INT iProtocol;
|
||||
} CSADDR_INFO, *PCSADDR_INFO, FAR *LPCSADDR_INFO ;
|
||||
|
||||
#endif /* __CSADDR_DEFINED__ */
|
||||
|
||||
#define _SS_MAXSIZE 128
|
||||
#define _SS_ALIGNSIZE (sizeof(__int64))
|
||||
|
||||
|
@ -182,32 +145,6 @@ typedef struct _CSADDR_INFO {
|
|||
|
||||
#endif /* (_WIN32_WINNT >= 0x0600) */
|
||||
|
||||
typedef struct sockaddr_storage {
|
||||
ADDRESS_FAMILY ss_family;
|
||||
CHAR __ss_pad1[_SS_PAD1SIZE];
|
||||
__int64 __ss_align;
|
||||
CHAR __ss_pad2[_SS_PAD2SIZE];
|
||||
} SOCKADDR_STORAGE_LH, *PSOCKADDR_STORAGE_LH, FAR *LPSOCKADDR_STORAGE_LH;
|
||||
|
||||
typedef struct sockaddr_storage_xp {
|
||||
short ss_family;
|
||||
CHAR __ss_pad1[_SS_PAD1SIZE];
|
||||
__int64 __ss_align;
|
||||
CHAR __ss_pad2[_SS_PAD2SIZE];
|
||||
} SOCKADDR_STORAGE_XP, *PSOCKADDR_STORAGE_XP, FAR *LPSOCKADDR_STORAGE_XP;
|
||||
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
|
||||
typedef SOCKADDR_STORAGE_LH SOCKADDR_STORAGE;
|
||||
typedef SOCKADDR_STORAGE *PSOCKADDR_STORAGE, FAR *LPSOCKADDR_STORAGE;
|
||||
|
||||
#elif (_WIN32_WINNT >= 0x0501)
|
||||
|
||||
typedef SOCKADDR_STORAGE_XP SOCKADDR_STORAGE;
|
||||
typedef SOCKADDR_STORAGE *PSOCKADDR_STORAGE, FAR *LPSOCKADDR_STORAGE;
|
||||
|
||||
#endif /* (_WIN32_WINNT >= 0x0600) */
|
||||
|
||||
#define IOC_UNIX 0x00000000
|
||||
#define IOC_WS2 0x08000000
|
||||
#define IOC_PROTOCOL 0x10000000
|
||||
|
@ -252,59 +189,6 @@ typedef SOCKADDR_STORAGE *PSOCKADDR_STORAGE, FAR *LPSOCKADDR_STORAGE;
|
|||
|
||||
#define IPPROTO_IP 0
|
||||
|
||||
typedef enum {
|
||||
#if (_WIN32_WINNT >= 0x0501)
|
||||
IPPROTO_HOPOPTS = 0,
|
||||
#endif
|
||||
IPPROTO_ICMP = 1,
|
||||
IPPROTO_IGMP = 2,
|
||||
IPPROTO_GGP = 3,
|
||||
#if (_WIN32_WINNT >= 0x0501)
|
||||
IPPROTO_IPV4 = 4,
|
||||
#endif
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
IPPROTO_ST = 5,
|
||||
#endif
|
||||
IPPROTO_TCP = 6,
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
IPPROTO_CBT = 7,
|
||||
IPPROTO_EGP = 8,
|
||||
IPPROTO_IGP = 9,
|
||||
#endif
|
||||
IPPROTO_PUP = 12,
|
||||
IPPROTO_UDP = 17,
|
||||
IPPROTO_IDP = 22,
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
IPPROTO_RDP = 27,
|
||||
#endif
|
||||
#if (_WIN32_WINNT >= 0x0501)
|
||||
IPPROTO_IPV6 = 41,
|
||||
IPPROTO_ROUTING = 43,
|
||||
IPPROTO_FRAGMENT = 44,
|
||||
IPPROTO_ESP = 50,
|
||||
IPPROTO_AH = 51,
|
||||
IPPROTO_ICMPV6 = 58,
|
||||
IPPROTO_NONE = 59,
|
||||
IPPROTO_DSTOPTS = 60,
|
||||
#endif /* (_WIN32_WINNT >= 0x0501) */
|
||||
IPPROTO_ND = 77,
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
IPPROTO_ICLFXBM = 78,
|
||||
#endif
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
IPPROTO_PIM = 103,
|
||||
IPPROTO_PGM = 113,
|
||||
IPPROTO_L2TP = 115,
|
||||
IPPROTO_SCTP = 132,
|
||||
#endif /* (_WIN32_WINNT >= 0x0600) */
|
||||
IPPROTO_RAW = 255,
|
||||
IPPROTO_MAX = 256,
|
||||
IPPROTO_RESERVED_RAW = 257,
|
||||
IPPROTO_RESERVED_IPSEC = 258,
|
||||
IPPROTO_RESERVED_IPSECOFFLOAD = 259,
|
||||
IPPROTO_RESERVED_MAX = 260
|
||||
} IPPROTO, *PIPROTO;
|
||||
|
||||
#define IPPORT_TCPMUX 1
|
||||
#define IPPORT_ECHO 7
|
||||
#define IPPORT_DISCARD 9
|
||||
|
@ -389,6 +273,206 @@ typedef enum {
|
|||
#define INADDR_BROADCAST (ULONG)0xffffffff
|
||||
#define INADDR_NONE 0xffffffff
|
||||
|
||||
#define SCOPEID_UNSPECIFIED_INIT {0}
|
||||
|
||||
#define IOCPARM_MASK 0x7f
|
||||
#define IOC_VOID 0x20000000
|
||||
#define IOC_OUT 0x40000000
|
||||
#define IOC_IN 0x80000000
|
||||
#define IOC_INOUT (IOC_IN|IOC_OUT)
|
||||
|
||||
#define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
|
||||
#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
|
||||
#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
|
||||
|
||||
#define MSG_TRUNC 0x0100
|
||||
#define MSG_CTRUNC 0x0200
|
||||
#define MSG_BCAST 0x0400
|
||||
#define MSG_MCAST 0x0800
|
||||
|
||||
#define AI_PASSIVE 0x00000001
|
||||
#define AI_CANONNAME 0x00000002
|
||||
#define AI_NUMERICHOST 0x00000004
|
||||
#define AI_NUMERICSERV 0x00000008
|
||||
|
||||
#define AI_ALL 0x00000100
|
||||
#define AI_ADDRCONFIG 0x00000400
|
||||
#define AI_V4MAPPED 0x00000800
|
||||
|
||||
#define AI_NON_AUTHORITATIVE 0x00004000
|
||||
#define AI_SECURE 0x00008000
|
||||
#define AI_RETURN_PREFERRED_NAMES 0x00010000
|
||||
|
||||
#define AI_FQDN 0x00020000
|
||||
#define AI_FILESERVER 0x00040000
|
||||
|
||||
#define NS_ALL 0
|
||||
|
||||
#define NS_SAP 1
|
||||
#define NS_NDS 2
|
||||
#define NS_PEER_BROWSE 3
|
||||
#define NS_SLP 5
|
||||
#define NS_DHCP 6
|
||||
|
||||
#define NS_TCPIP_LOCAL 10
|
||||
#define NS_TCPIP_HOSTS 11
|
||||
#define NS_DNS 12
|
||||
#define NS_NETBT 13
|
||||
#define NS_WINS 14
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
#define NS_NLA 15
|
||||
#endif
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0600)
|
||||
#define NS_BTH 16
|
||||
#endif
|
||||
|
||||
#define NS_NBP 20
|
||||
|
||||
#define NS_MS 30
|
||||
#define NS_STDA 31
|
||||
#define NS_NTDS 32
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0600)
|
||||
#define NS_EMAIL 37
|
||||
#define NS_PNRPNAME 38
|
||||
#define NS_PNRPCLOUD 39
|
||||
#endif
|
||||
|
||||
#define NS_X500 40
|
||||
#define NS_NIS 41
|
||||
#define NS_NISPLUS 42
|
||||
|
||||
#define NS_WRQ 50
|
||||
|
||||
#define NS_NETDES 60
|
||||
|
||||
#define NI_NOFQDN 0x01
|
||||
#define NI_NUMERICHOST 0x02
|
||||
#define NI_NAMEREQD 0x04
|
||||
#define NI_NUMERICSERV 0x08
|
||||
#define NI_DGRAM 0x10
|
||||
|
||||
#define NI_MAXHOST 1025
|
||||
#define NI_MAXSERV 32
|
||||
|
||||
typedef struct sockaddr {
|
||||
#if (_WIN32_WINNT < 0x0600)
|
||||
u_short sa_family;
|
||||
#else
|
||||
ADDRESS_FAMILY sa_family;
|
||||
#endif
|
||||
CHAR sa_data[14];
|
||||
} SOCKADDR, *PSOCKADDR, FAR *LPSOCKADDR;
|
||||
|
||||
#ifndef __CSADDR_DEFINED__
|
||||
#define __CSADDR_DEFINED__
|
||||
|
||||
typedef struct _SOCKET_ADDRESS {
|
||||
LPSOCKADDR lpSockaddr;
|
||||
INT iSockaddrLength;
|
||||
} SOCKET_ADDRESS, *PSOCKET_ADDRESS, *LPSOCKET_ADDRESS;
|
||||
|
||||
typedef struct _SOCKET_ADDRESS_LIST {
|
||||
INT iAddressCount;
|
||||
SOCKET_ADDRESS Address[1];
|
||||
} SOCKET_ADDRESS_LIST, *PSOCKET_ADDRESS_LIST, FAR *LPSOCKET_ADDRESS_LIST;
|
||||
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
#define SIZEOF_SOCKET_ADDRESS_LIST(AddressCount) \
|
||||
(FIELD_OFFSET(SOCKET_ADDRESS_LIST, Address) + \
|
||||
AddressCount * sizeof(SOCKET_ADDRESS))
|
||||
#endif
|
||||
|
||||
typedef struct _CSADDR_INFO {
|
||||
SOCKET_ADDRESS LocalAddr;
|
||||
SOCKET_ADDRESS RemoteAddr;
|
||||
INT iSocketType;
|
||||
INT iProtocol;
|
||||
} CSADDR_INFO, *PCSADDR_INFO, FAR *LPCSADDR_INFO ;
|
||||
|
||||
#endif /* __CSADDR_DEFINED__ */
|
||||
|
||||
typedef struct sockaddr_storage {
|
||||
ADDRESS_FAMILY ss_family;
|
||||
CHAR __ss_pad1[_SS_PAD1SIZE];
|
||||
__int64 __ss_align;
|
||||
CHAR __ss_pad2[_SS_PAD2SIZE];
|
||||
} SOCKADDR_STORAGE_LH, *PSOCKADDR_STORAGE_LH, FAR *LPSOCKADDR_STORAGE_LH;
|
||||
|
||||
typedef struct sockaddr_storage_xp {
|
||||
short ss_family;
|
||||
CHAR __ss_pad1[_SS_PAD1SIZE];
|
||||
__int64 __ss_align;
|
||||
CHAR __ss_pad2[_SS_PAD2SIZE];
|
||||
} SOCKADDR_STORAGE_XP, *PSOCKADDR_STORAGE_XP, FAR *LPSOCKADDR_STORAGE_XP;
|
||||
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
|
||||
typedef SOCKADDR_STORAGE_LH SOCKADDR_STORAGE;
|
||||
typedef SOCKADDR_STORAGE *PSOCKADDR_STORAGE, FAR *LPSOCKADDR_STORAGE;
|
||||
|
||||
#elif (_WIN32_WINNT >= 0x0501)
|
||||
|
||||
typedef SOCKADDR_STORAGE_XP SOCKADDR_STORAGE;
|
||||
typedef SOCKADDR_STORAGE *PSOCKADDR_STORAGE, FAR *LPSOCKADDR_STORAGE;
|
||||
|
||||
#endif /* (_WIN32_WINNT >= 0x0600) */
|
||||
|
||||
typedef enum {
|
||||
#if (_WIN32_WINNT >= 0x0501)
|
||||
IPPROTO_HOPOPTS = 0,
|
||||
#endif
|
||||
IPPROTO_ICMP = 1,
|
||||
IPPROTO_IGMP = 2,
|
||||
IPPROTO_GGP = 3,
|
||||
#if (_WIN32_WINNT >= 0x0501)
|
||||
IPPROTO_IPV4 = 4,
|
||||
#endif
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
IPPROTO_ST = 5,
|
||||
#endif
|
||||
IPPROTO_TCP = 6,
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
IPPROTO_CBT = 7,
|
||||
IPPROTO_EGP = 8,
|
||||
IPPROTO_IGP = 9,
|
||||
#endif
|
||||
IPPROTO_PUP = 12,
|
||||
IPPROTO_UDP = 17,
|
||||
IPPROTO_IDP = 22,
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
IPPROTO_RDP = 27,
|
||||
#endif
|
||||
#if (_WIN32_WINNT >= 0x0501)
|
||||
IPPROTO_IPV6 = 41,
|
||||
IPPROTO_ROUTING = 43,
|
||||
IPPROTO_FRAGMENT = 44,
|
||||
IPPROTO_ESP = 50,
|
||||
IPPROTO_AH = 51,
|
||||
IPPROTO_ICMPV6 = 58,
|
||||
IPPROTO_NONE = 59,
|
||||
IPPROTO_DSTOPTS = 60,
|
||||
#endif /* (_WIN32_WINNT >= 0x0501) */
|
||||
IPPROTO_ND = 77,
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
IPPROTO_ICLFXBM = 78,
|
||||
#endif
|
||||
#if (_WIN32_WINNT >= 0x0600)
|
||||
IPPROTO_PIM = 103,
|
||||
IPPROTO_PGM = 113,
|
||||
IPPROTO_L2TP = 115,
|
||||
IPPROTO_SCTP = 132,
|
||||
#endif /* (_WIN32_WINNT >= 0x0600) */
|
||||
IPPROTO_RAW = 255,
|
||||
IPPROTO_MAX = 256,
|
||||
IPPROTO_RESERVED_RAW = 257,
|
||||
IPPROTO_RESERVED_IPSEC = 258,
|
||||
IPPROTO_RESERVED_IPSECOFFLOAD = 259,
|
||||
IPPROTO_RESERVED_MAX = 260
|
||||
} IPPROTO, *PIPROTO;
|
||||
|
||||
typedef enum {
|
||||
ScopeLevelInterface = 1,
|
||||
ScopeLevelLink = 2,
|
||||
|
@ -410,8 +494,6 @@ typedef struct {
|
|||
};
|
||||
} SCOPE_ID, *PSCOPE_ID;
|
||||
|
||||
#define SCOPEID_UNSPECIFIED_INIT {0}
|
||||
|
||||
typedef struct sockaddr_in {
|
||||
#if(_WIN32_WINNT < 0x0600)
|
||||
short sin_family;
|
||||
|
@ -431,16 +513,6 @@ typedef struct sockaddr_dl {
|
|||
} SOCKADDR_DL, *PSOCKADDR_DL;
|
||||
#endif
|
||||
|
||||
#define IOCPARM_MASK 0x7f
|
||||
#define IOC_VOID 0x20000000
|
||||
#define IOC_OUT 0x40000000
|
||||
#define IOC_IN 0x80000000
|
||||
#define IOC_INOUT (IOC_IN|IOC_OUT)
|
||||
|
||||
#define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
|
||||
#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
|
||||
#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
|
||||
|
||||
typedef struct _WSABUF {
|
||||
ULONG len;
|
||||
CHAR FAR *buf;
|
||||
|
@ -587,27 +659,6 @@ typedef WSACMSGHDR CMSGHDR, *PCMSGHDR;
|
|||
#define CMSG_LEN WSA_CMSG_LEN
|
||||
#endif
|
||||
|
||||
#define MSG_TRUNC 0x0100
|
||||
#define MSG_CTRUNC 0x0200
|
||||
#define MSG_BCAST 0x0400
|
||||
#define MSG_MCAST 0x0800
|
||||
|
||||
#define AI_PASSIVE 0x00000001
|
||||
#define AI_CANONNAME 0x00000002
|
||||
#define AI_NUMERICHOST 0x00000004
|
||||
#define AI_NUMERICSERV 0x00000008
|
||||
|
||||
#define AI_ALL 0x00000100
|
||||
#define AI_ADDRCONFIG 0x00000400
|
||||
#define AI_V4MAPPED 0x00000800
|
||||
|
||||
#define AI_NON_AUTHORITATIVE 0x00004000
|
||||
#define AI_SECURE 0x00008000
|
||||
#define AI_RETURN_PREFERRED_NAMES 0x00010000
|
||||
|
||||
#define AI_FQDN 0x00020000
|
||||
#define AI_FILESERVER 0x00040000
|
||||
|
||||
typedef struct addrinfo {
|
||||
int ai_flags;
|
||||
int ai_family;
|
||||
|
@ -662,57 +713,6 @@ typedef struct addrinfoexW {
|
|||
|
||||
#endif /* (_WIN32_WINNT >= 0x0600) */
|
||||
|
||||
#define NS_ALL 0
|
||||
|
||||
#define NS_SAP 1
|
||||
#define NS_NDS 2
|
||||
#define NS_PEER_BROWSE 3
|
||||
#define NS_SLP 5
|
||||
#define NS_DHCP 6
|
||||
|
||||
#define NS_TCPIP_LOCAL 10
|
||||
#define NS_TCPIP_HOSTS 11
|
||||
#define NS_DNS 12
|
||||
#define NS_NETBT 13
|
||||
#define NS_WINS 14
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0501)
|
||||
#define NS_NLA 15
|
||||
#endif
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0600)
|
||||
#define NS_BTH 16
|
||||
#endif
|
||||
|
||||
#define NS_NBP 20
|
||||
|
||||
#define NS_MS 30
|
||||
#define NS_STDA 31
|
||||
#define NS_NTDS 32
|
||||
|
||||
#if(_WIN32_WINNT >= 0x0600)
|
||||
#define NS_EMAIL 37
|
||||
#define NS_PNRPNAME 38
|
||||
#define NS_PNRPCLOUD 39
|
||||
#endif
|
||||
|
||||
#define NS_X500 40
|
||||
#define NS_NIS 41
|
||||
#define NS_NISPLUS 42
|
||||
|
||||
#define NS_WRQ 50
|
||||
|
||||
#define NS_NETDES 60
|
||||
|
||||
#define NI_NOFQDN 0x01
|
||||
#define NI_NUMERICHOST 0x02
|
||||
#define NI_NAMEREQD 0x04
|
||||
#define NI_NUMERICSERV 0x08
|
||||
#define NI_DGRAM 0x10
|
||||
|
||||
#define NI_MAXHOST 1025
|
||||
#define NI_MAXSERV 32
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1,15 +1,593 @@
|
|||
#ifndef _WS2IPDEF_
|
||||
#pragma once
|
||||
|
||||
#define _WS2IPDEF_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef WS2IPDEF_ASSERT
|
||||
#define WS2IPDEF_ASSERT(exp) ((VOID) 0)
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define WS2TCPIP_INLINE __inline
|
||||
#else
|
||||
#define WS2TCPIP_INLINE extern inline
|
||||
#endif
|
||||
|
||||
#include <in6addr.h>
|
||||
|
||||
#define IFF_UP 0x00000001
|
||||
#define IFF_BROADCAST 0x00000002
|
||||
#define IFF_LOOPBACK 0x00000004
|
||||
#define IFF_POINTTOPOINT 0x00000008
|
||||
#define IFF_MULTICAST 0x00000010
|
||||
|
||||
#define IP_OPTIONS 1
|
||||
#define IP_HDRINCL 2
|
||||
#define IP_TOS 3
|
||||
#define IP_TTL 4
|
||||
#define IP_MULTICAST_IF 9
|
||||
#define IP_MULTICAST_TTL 10
|
||||
#define IP_MULTICAST_LOOP 11
|
||||
#define IP_ADD_MEMBERSHIP 12
|
||||
#define IP_DROP_MEMBERSHIP 13
|
||||
#define IP_DONTFRAGMENT 14
|
||||
#define IP_ADD_SOURCE_MEMBERSHIP 15
|
||||
#define IP_DROP_SOURCE_MEMBERSHIP 16
|
||||
#define IP_BLOCK_SOURCE 17
|
||||
#define IP_UNBLOCK_SOURCE 18
|
||||
#define IP_PKTINFO 19
|
||||
#define IP_HOPLIMIT 21
|
||||
#define IP_RECEIVE_BROADCAST 22
|
||||
#define IP_RECVIF 24
|
||||
#define IP_RECVDSTADDR 25
|
||||
#define IP_IFLIST 28
|
||||
#define IP_ADD_IFLIST 29
|
||||
#define IP_DEL_IFLIST 30
|
||||
#define IP_UNICAST_IF 31
|
||||
#define IP_RTHDR 32
|
||||
#define IP_RECVRTHDR 38
|
||||
#define IP_TCLASS 39
|
||||
#define IP_RECVTCLASS 40
|
||||
#define IP_ORIGINAL_ARRIVAL_IF 47
|
||||
|
||||
#define IP_UNSPECIFIED_TYPE_OF_SERVICE -1
|
||||
|
||||
#define IPV6_ADDRESS_BITS RTL_BITS_OF(IN6_ADDR)
|
||||
|
||||
#define SS_PORT(ssp) (((PSOCKADDR_IN)(ssp))->sin_port)
|
||||
|
||||
#define SIO_GET_INTERFACE_LIST _IOR('t', 127, ULONG)
|
||||
#define SIO_GET_INTERFACE_LIST_EX _IOR('t', 126, ULONG)
|
||||
#define SIO_SET_MULTICAST_FILTER _IOW('t', 125, ULONG)
|
||||
#define SIO_GET_MULTICAST_FILTER _IOW('t', 124 | IOC_IN, ULONG)
|
||||
#define SIOCSIPMSFILTER SIO_SET_MULTICAST_FILTER
|
||||
#define SIOCGIPMSFILTER SIO_GET_MULTICAST_FILTER
|
||||
|
||||
#define SIOCSMSFILTER _IOW('t', 126, ULONG)
|
||||
#define SIOCGMSFILTER _IOW('t', 127 | IOC_IN, ULONG)
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
|
||||
|
||||
#define IDEAL_SEND_BACKLOG_IOCTLS
|
||||
|
||||
#define SIO_IDEAL_SEND_BACKLOG_QUERY _IOR('t', 123, ULONG)
|
||||
#define SIO_IDEAL_SEND_BACKLOG_CHANGE _IO('t', 122)
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
|
||||
|
||||
#define MCAST_JOIN_GROUP 41
|
||||
#define MCAST_LEAVE_GROUP 42
|
||||
#define MCAST_BLOCK_SOURCE 43
|
||||
#define MCAST_UNBLOCK_SOURCE 44
|
||||
#define MCAST_JOIN_SOURCE_GROUP 45
|
||||
#define MCAST_LEAVE_SOURCE_GROUP 46
|
||||
|
||||
#define IP_MSFILTER_SIZE(NumSources) \
|
||||
(sizeof(IP_MSFILTER) - sizeof(IN_ADDR) + (NumSources) * sizeof(IN_ADDR))
|
||||
|
||||
#define IPV6_HOPOPTS 1
|
||||
#define IPV6_HDRINCL 2
|
||||
#define IPV6_UNICAST_HOPS 4
|
||||
#define IPV6_MULTICAST_IF 9
|
||||
#define IPV6_MULTICAST_HOPS 10
|
||||
#define IPV6_MULTICAST_LOOP 11
|
||||
#define IPV6_ADD_MEMBERSHIP 12
|
||||
#define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
|
||||
#define IPV6_DROP_MEMBERSHIP 13
|
||||
#define IPV6_LEAVE_GROUP IPV6_DROP_MEMBERSHIP
|
||||
#define IPV6_DONTFRAG 14
|
||||
#define IPV6_PKTINFO 19
|
||||
#define IPV6_HOPLIMIT 21
|
||||
#define IPV6_PROTECTION_LEVEL 23
|
||||
#define IPV6_RECVIF 24
|
||||
#define IPV6_RECVDSTADDR 25
|
||||
#define IPV6_CHECKSUM 26
|
||||
#define IPV6_V6ONLY 27
|
||||
#define IPV6_IFLIST 28
|
||||
#define IPV6_ADD_IFLIST 29
|
||||
#define IPV6_DEL_IFLIST 30
|
||||
#define IPV6_UNICAST_IF 31
|
||||
#define IPV6_RTHDR 32
|
||||
#define IPV6_RECVRTHDR 38
|
||||
#define IPV6_TCLASS 39
|
||||
#define IPV6_RECVTCLASS 40
|
||||
|
||||
#define IP_UNSPECIFIED_HOP_LIMIT -1
|
||||
|
||||
#define IP_PROTECTION_LEVEL IPV6_PROTECTION_LEVEL
|
||||
#define PROTECTION_LEVEL_UNRESTRICTED 10
|
||||
#define PROTECTION_LEVEL_EDGERESTRICTED 20
|
||||
#define PROTECTION_LEVEL_RESTRICTED 30
|
||||
|
||||
#if (NTDDI_VERSION < NTDDI_VISTA)
|
||||
#define PROTECTION_LEVEL_DEFAULT PROTECTION_LEVEL_EDGERESTRICTED
|
||||
#else
|
||||
#define PROTECTION_LEVEL_DEFAULT ((UINT)-1)
|
||||
#endif
|
||||
|
||||
#define INET_ADDRSTRLEN 22
|
||||
#define INET6_ADDRSTRLEN 65
|
||||
|
||||
#define TCP_OFFLOAD_NO_PREFERENCE 0
|
||||
#define TCP_OFFLOAD_NOT_PREFERRED 1
|
||||
#define TCP_OFFLOAD_PREFERRED 2
|
||||
|
||||
#define TCP_EXPEDITED_1122 0x0002
|
||||
#define TCP_KEEPALIVE 3
|
||||
#define TCP_MAXSEG 4
|
||||
#define TCP_MAXRT 5
|
||||
#define TCP_STDURG 6
|
||||
#define TCP_NOURG 7
|
||||
#define TCP_ATMARK 8
|
||||
#define TCP_NOSYNRETRIES 9
|
||||
#define TCP_TIMESTAMPS 10
|
||||
#define TCP_OFFLOAD_PREFERENCE 11
|
||||
#define TCP_CONGESTION_ALGORITHM 12
|
||||
#define TCP_DELAY_FIN_ACK 13
|
||||
|
||||
struct sockaddr_in6_old {
|
||||
SHORT sin6_family;
|
||||
USHORT sin6_port;
|
||||
ULONG sin6_flowinfo;
|
||||
IN6_ADDR sin6_addr;
|
||||
};
|
||||
|
||||
typedef union sockaddr_gen {
|
||||
struct sockaddr Address;
|
||||
struct sockaddr_in AddressIn;
|
||||
struct sockaddr_in6_old AddressIn6;
|
||||
} sockaddr_gen;
|
||||
|
||||
typedef struct _INTERFACE_INFO {
|
||||
ULONG iiFlags;
|
||||
sockaddr_gen iiAddress;
|
||||
sockaddr_gen iiBroadcastAddress;
|
||||
sockaddr_gen iiNetmask;
|
||||
} INTERFACE_INFO, FAR *LPINTERFACE_INFO;
|
||||
|
||||
typedef struct _INTERFACE_INFO_EX {
|
||||
ULONG iiFlags;
|
||||
SOCKET_ADDRESS iiAddress;
|
||||
SOCKET_ADDRESS iiBroadcastAddress;
|
||||
SOCKET_ADDRESS iiNetmask;
|
||||
} INTERFACE_INFO_EX, FAR *LPINTERFACE_INFO_EX;
|
||||
|
||||
typedef struct sockaddr_in6 {
|
||||
ADDRESS_FAMILY sin6_family;
|
||||
USHORT sin6_port;
|
||||
ULONG sin6_flowinfo;
|
||||
IN6_ADDR sin6_addr;
|
||||
union {
|
||||
ULONG sin6_scope_id;
|
||||
SCOPE_ID sin6_scope_struct;
|
||||
};
|
||||
} SOCKADDR_IN6_LH, *PSOCKADDR_IN6_LH, FAR *LPSOCKADDR_IN6_LH;
|
||||
|
||||
typedef struct sockaddr_in6_w2ksp1 {
|
||||
short sin6_family;
|
||||
USHORT sin6_port;
|
||||
ULONG sin6_flowinfo;
|
||||
struct in6_addr sin6_addr;
|
||||
ULONG sin6_scope_id;
|
||||
} SOCKADDR_IN6_W2KSP1, *PSOCKADDR_IN6_W2KSP1, FAR *LPSOCKADDR_IN6_W2KSP1;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
typedef SOCKADDR_IN6_LH SOCKADDR_IN6;
|
||||
typedef SOCKADDR_IN6_LH *PSOCKADDR_IN6;
|
||||
typedef SOCKADDR_IN6_LH FAR *LPSOCKADDR_IN6;
|
||||
|
||||
#elif(NTDDI_VERSION >= NTDDI_WIN2KSP1)
|
||||
|
||||
typedef SOCKADDR_IN6_W2KSP1 SOCKADDR_IN6;
|
||||
typedef SOCKADDR_IN6_W2KSP1 *PSOCKADDR_IN6;
|
||||
typedef SOCKADDR_IN6_W2KSP1 FAR *LPSOCKADDR_IN6;
|
||||
|
||||
#else
|
||||
|
||||
typedef SOCKADDR_IN6_LH SOCKADDR_IN6;
|
||||
typedef SOCKADDR_IN6_LH *PSOCKADDR_IN6;
|
||||
typedef SOCKADDR_IN6_LH FAR *LPSOCKADDR_IN6;
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||
|
||||
typedef union _SOCKADDR_INET {
|
||||
SOCKADDR_IN Ipv4;
|
||||
SOCKADDR_IN6 Ipv6;
|
||||
ADDRESS_FAMILY si_family;
|
||||
} SOCKADDR_INET, *PSOCKADDR_INET;
|
||||
|
||||
typedef struct _sockaddr_in6_pair {
|
||||
PSOCKADDR_IN6 SourceAddress;
|
||||
PSOCKADDR_IN6 DestinationAddress;
|
||||
} SOCKADDR_IN6_PAIR, *PSOCKADDR_IN6_PAIR;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2KSP1)
|
||||
|
||||
#define IN6ADDR_ANY_INIT {0}
|
||||
#define IN6ADDR_LOOPBACK_INIT {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}
|
||||
#define IN6ADDR_ALLNODESONNODE_INIT {0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}
|
||||
#define IN6ADDR_ALLNODESONLINK_INIT {0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01}
|
||||
#define IN6ADDR_ALLROUTERSONLINK_INIT {0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02}
|
||||
#define IN6ADDR_ALLMLDV2ROUTERSONLINK_INIT {0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16}
|
||||
#define IN6ADDR_TEREDOINITIALLINKLOCALADDRESS_INIT {0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe}
|
||||
#define IN6ADDR_TEREDOOLDLINKLOCALADDRESSXP_INIT {0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 'T', 'E', 'R', 'E', 'D', 'O'}
|
||||
#define IN6ADDR_TEREDOOLDLINKLOCALADDRESSVISTA_INIT {0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
|
||||
#define IN6ADDR_LINKLOCALPREFIX_INIT {0xfe, 0x80, }
|
||||
#define IN6ADDR_MULTICASTPREFIX_INIT {0xff, 0x00, }
|
||||
#define IN6ADDR_SOLICITEDNODEMULTICASTPREFIX_INIT {0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, }
|
||||
#define IN6ADDR_V4MAPPEDPREFIX_INIT {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, }
|
||||
#define IN6ADDR_6TO4PREFIX_INIT {0x20, 0x02, }
|
||||
#define IN6ADDR_TEREDOPREFIX_INIT {0x20, 0x01, 0x00, 0x00, }
|
||||
#define IN6ADDR_TEREDOPREFIX_INIT_OLD {0x3f, 0xfe, 0x83, 0x1f, }
|
||||
|
||||
#define IN6ADDR_LINKLOCALPREFIX_LENGTH 64
|
||||
#define IN6ADDR_MULTICASTPREFIX_LENGTH 8
|
||||
#define IN6ADDR_SOLICITEDNODEMULTICASTPREFIX_LENGTH 104
|
||||
#define IN6ADDR_V4MAPPEDPREFIX_LENGTH 96
|
||||
#define IN6ADDR_6TO4PREFIX_LENGTH 16
|
||||
#define IN6ADDR_TEREDOPREFIX_LENGTH 32
|
||||
|
||||
extern CONST SCOPE_ID scopeid_unspecified;
|
||||
|
||||
extern CONST IN_ADDR in4addr_any;
|
||||
extern CONST IN_ADDR in4addr_loopback;
|
||||
extern CONST IN_ADDR in4addr_broadcast;
|
||||
extern CONST IN_ADDR in4addr_allnodesonlink;
|
||||
extern CONST IN_ADDR in4addr_allroutersonlink;
|
||||
extern CONST IN_ADDR in4addr_alligmpv3routersonlink;
|
||||
extern CONST IN_ADDR in4addr_allteredohostsonlink;
|
||||
extern CONST IN_ADDR in4addr_linklocalprefix;
|
||||
extern CONST IN_ADDR in4addr_multicastprefix;
|
||||
|
||||
extern CONST IN6_ADDR in6addr_any;
|
||||
extern CONST IN6_ADDR in6addr_loopback;
|
||||
extern CONST IN6_ADDR in6addr_allnodesonnode;
|
||||
extern CONST IN6_ADDR in6addr_allnodesonlink;
|
||||
extern CONST IN6_ADDR in6addr_allroutersonlink;
|
||||
extern CONST IN6_ADDR in6addr_allmldv2routersonlink;
|
||||
extern CONST IN6_ADDR in6addr_teredoinitiallinklocaladdress;
|
||||
extern CONST IN6_ADDR in6addr_linklocalprefix;
|
||||
extern CONST IN6_ADDR in6addr_multicastprefix;
|
||||
extern CONST IN6_ADDR in6addr_solicitednodemulticastprefix;
|
||||
extern CONST IN6_ADDR in6addr_v4mappedprefix;
|
||||
extern CONST IN6_ADDR in6addr_6to4prefix;
|
||||
extern CONST IN6_ADDR in6addr_teredoprefix;
|
||||
extern CONST IN6_ADDR in6addr_teredoprefix_old;
|
||||
|
||||
#ifndef __midl
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_ADDR_EQUAL(CONST IN6_ADDR *x, CONST IN6_ADDR *y) {
|
||||
__int64 UNALIGNED *a;
|
||||
__int64 UNALIGNED *b;
|
||||
|
||||
a = (__int64 UNALIGNED *)x;
|
||||
b = (__int64 UNALIGNED *)y;
|
||||
return (BOOLEAN)((a[1] == b[1]) && (a[0] == b[0]));
|
||||
}
|
||||
|
||||
#define IN6_ARE_ADDR_EQUAL IN6_ADDR_EQUAL
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_UNSPECIFIED(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)((a->s6_words[0] == 0) &&
|
||||
(a->s6_words[1] == 0) &&
|
||||
(a->s6_words[2] == 0) &&
|
||||
(a->s6_words[3] == 0) &&
|
||||
(a->s6_words[4] == 0) &&
|
||||
(a->s6_words[5] == 0) &&
|
||||
(a->s6_words[6] == 0) &&
|
||||
(a->s6_words[7] == 0));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_LOOPBACK(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)((a->s6_words[0] == 0) &&
|
||||
(a->s6_words[1] == 0) &&
|
||||
(a->s6_words[2] == 0) &&
|
||||
(a->s6_words[3] == 0) &&
|
||||
(a->s6_words[4] == 0) &&
|
||||
(a->s6_words[5] == 0) &&
|
||||
(a->s6_words[6] == 0) &&
|
||||
(a->s6_words[7] == 0x0100));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_MULTICAST(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(a->s6_bytes[0] == 0xff);
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_EUI64(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(((a->s6_bytes[0] & 0xe0) != 0) &&
|
||||
!IN6_IS_ADDR_MULTICAST(a));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_SUBNET_ROUTER_ANYCAST(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(IN6_IS_ADDR_EUI64(a) &&
|
||||
(a->s6_words[4] == 0) &&
|
||||
(a->s6_words[5] == 0) &&
|
||||
(a->s6_words[6] == 0) &&
|
||||
(a->s6_words[7] == 0));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_SUBNET_RESERVED_ANYCAST(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(IN6_IS_ADDR_EUI64(a) &&
|
||||
(a->s6_words[4] == 0xfffd) &&
|
||||
(a->s6_words[5] == 0xffff) &&
|
||||
(a->s6_words[6] == 0xffff) &&
|
||||
((a->s6_words[7] & 0x80ff) == 0x80ff));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_ANYCAST(CONST IN6_ADDR *a) {
|
||||
return (IN6_IS_ADDR_SUBNET_RESERVED_ANYCAST(a) ||
|
||||
IN6_IS_ADDR_SUBNET_ROUTER_ANYCAST(a));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_LINKLOCAL(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)((a->s6_bytes[0] == 0xfe) &&
|
||||
((a->s6_bytes[1] & 0xc0) == 0x80));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_SITELOCAL(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)((a->s6_bytes[0] == 0xfe) &&
|
||||
((a->s6_bytes[1] & 0xc0) == 0xc0));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_GLOBAL(CONST IN6_ADDR *a) {
|
||||
ULONG High = (a->s6_bytes[0] & 0xf0);
|
||||
return (BOOLEAN)((High != 0) && (High != 0xf0));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_V4MAPPED(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)((a->s6_words[0] == 0) &&
|
||||
(a->s6_words[1] == 0) &&
|
||||
(a->s6_words[2] == 0) &&
|
||||
(a->s6_words[3] == 0) &&
|
||||
(a->s6_words[4] == 0) &&
|
||||
(a->s6_words[5] == 0xffff));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_V4COMPAT(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)((a->s6_words[0] == 0) &&
|
||||
(a->s6_words[1] == 0) &&
|
||||
(a->s6_words[2] == 0) &&
|
||||
(a->s6_words[3] == 0) &&
|
||||
(a->s6_words[4] == 0) &&
|
||||
(a->s6_words[5] == 0) &&
|
||||
!((a->s6_words[6] == 0) &&
|
||||
(a->s6_addr[14] == 0) &&
|
||||
((a->s6_addr[15] == 0) || (a->s6_addr[15] == 1))));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_V4TRANSLATED(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)((a->s6_words[0] == 0) &&
|
||||
(a->s6_words[1] == 0) &&
|
||||
(a->s6_words[2] == 0) &&
|
||||
(a->s6_words[3] == 0) &&
|
||||
(a->s6_words[4] == 0xffff) &&
|
||||
(a->s6_words[5] == 0));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_MC_NODELOCAL(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(IN6_IS_ADDR_MULTICAST(a) &&
|
||||
((a->s6_bytes[1] & 0xf) == 1));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_MC_LINKLOCAL(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(IN6_IS_ADDR_MULTICAST(a) &&
|
||||
((a->s6_bytes[1] & 0xf) == 2));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_MC_SITELOCAL(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(IN6_IS_ADDR_MULTICAST(a) &&
|
||||
((a->s6_bytes[1] & 0xf) == 5));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_MC_ORGLOCAL(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(IN6_IS_ADDR_MULTICAST(a) &&
|
||||
((a->s6_bytes[1] & 0xf) == 8));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6_IS_ADDR_MC_GLOBAL(CONST IN6_ADDR *a) {
|
||||
return (BOOLEAN)(IN6_IS_ADDR_MULTICAST(a) &&
|
||||
((a->s6_bytes[1] & 0xf) == 0xe));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
VOID
|
||||
IN6_SET_ADDR_UNSPECIFIED(PIN6_ADDR a) {
|
||||
memset(a->s6_bytes, 0, sizeof(IN6_ADDR));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
VOID
|
||||
IN6_SET_ADDR_LOOPBACK(PIN6_ADDR a) {
|
||||
memset(a->s6_bytes, 0, sizeof(IN6_ADDR));
|
||||
a->s6_bytes[15] = 1;
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
VOID
|
||||
IN6ADDR_SETANY(PSOCKADDR_IN6 a) {
|
||||
a->sin6_family = AF_INET6;
|
||||
a->sin6_port = 0;
|
||||
a->sin6_flowinfo = 0;
|
||||
IN6_SET_ADDR_UNSPECIFIED(&a->sin6_addr);
|
||||
a->sin6_scope_id = 0;
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
VOID
|
||||
IN6ADDR_SETLOOPBACK(PSOCKADDR_IN6 a) {
|
||||
a->sin6_family = AF_INET6;
|
||||
a->sin6_port = 0;
|
||||
a->sin6_flowinfo = 0;
|
||||
IN6_SET_ADDR_LOOPBACK(&a->sin6_addr);
|
||||
a->sin6_scope_id = 0;
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6ADDR_ISANY(CONST SOCKADDR_IN6 *a) {
|
||||
WS2IPDEF_ASSERT(a->sin6_family == AF_INET6);
|
||||
return IN6_IS_ADDR_UNSPECIFIED(&a->sin6_addr);
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6ADDR_ISLOOPBACK(CONST SOCKADDR_IN6 *a) {
|
||||
WS2IPDEF_ASSERT(a->sin6_family == AF_INET6);
|
||||
return IN6_IS_ADDR_LOOPBACK(&a->sin6_addr);
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6ADDR_ISEQUAL(CONST SOCKADDR_IN6 *a, CONST SOCKADDR_IN6 *b) {
|
||||
WS2IPDEF_ASSERT(a->sin6_family == AF_INET6);
|
||||
return (BOOLEAN)(a->sin6_scope_id == b->sin6_scope_id &&
|
||||
IN6_ADDR_EQUAL(&a->sin6_addr, &b->sin6_addr));
|
||||
}
|
||||
|
||||
WS2TCPIP_INLINE
|
||||
BOOLEAN
|
||||
IN6ADDR_ISUNSPECIFIED(CONST SOCKADDR_IN6 *a) {
|
||||
WS2IPDEF_ASSERT(a->sin6_family == AF_INET6);
|
||||
return (BOOLEAN)(a->sin6_scope_id == 0 &&
|
||||
IN6_IS_ADDR_UNSPECIFIED(&a->sin6_addr));
|
||||
}
|
||||
|
||||
#endif /* __midl */
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2KSP1) */
|
||||
|
||||
typedef enum _MULTICAST_MODE_TYPE {
|
||||
MCAST_INCLUDE = 0,
|
||||
MCAST_EXCLUDE
|
||||
} MULTICAST_MODE_TYPE;
|
||||
|
||||
typedef struct ip_mreq {
|
||||
IN_ADDR imr_multiaddr;
|
||||
IN_ADDR imr_interface;
|
||||
} IP_MREQ, *PIP_MREQ;
|
||||
|
||||
typedef struct ip_mreq_source {
|
||||
IN_ADDR imr_multiaddr;
|
||||
IN_ADDR imr_sourceaddr;
|
||||
IN_ADDR imr_interface;
|
||||
} IP_MREQ_SOURCE, *PIP_MREQ_SOURCE;
|
||||
|
||||
typedef struct ip_msfilter {
|
||||
IN_ADDR imsf_multiaddr;
|
||||
IN_ADDR imsf_interface;
|
||||
MULTICAST_MODE_TYPE imsf_fmode;
|
||||
ULONG imsf_numsrc;
|
||||
IN_ADDR imsf_slist[1];
|
||||
} IP_MSFILTER, *PIP_MSFILTER;
|
||||
|
||||
typedef struct ipv6_mreq {
|
||||
IN6_ADDR ipv6mr_multiaddr;
|
||||
ULONG ipv6mr_interface;
|
||||
} IPV6_MREQ, *PIPV6_MREQ;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
|
||||
typedef struct group_req {
|
||||
ULONG gr_interface;
|
||||
SOCKADDR_STORAGE gr_group;
|
||||
} GROUP_REQ, *PGROUP_REQ;
|
||||
|
||||
typedef struct group_source_req {
|
||||
ULONG gsr_interface;
|
||||
SOCKADDR_STORAGE gsr_group;
|
||||
SOCKADDR_STORAGE gsr_source;
|
||||
} GROUP_SOURCE_REQ, *PGROUP_SOURCE_REQ;
|
||||
|
||||
typedef struct group_filter {
|
||||
ULONG gf_interface;
|
||||
SOCKADDR_STORAGE gf_group;
|
||||
MULTICAST_MODE_TYPE gf_fmode;
|
||||
ULONG gf_numsrc;
|
||||
SOCKADDR_STORAGE gf_slist[1];
|
||||
} GROUP_FILTER, *PGROUP_FILTER;
|
||||
|
||||
#define GROUP_FILTER_SIZE(numsrc) \
|
||||
(sizeof(GROUP_FILTER) - sizeof(SOCKADDR_STORAGE) \
|
||||
+ (numsrc) * sizeof(SOCKADDR_STORAGE))
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||
|
||||
typedef struct in_pktinfo {
|
||||
IN_ADDR ipi_addr;
|
||||
ULONG ipi_ifindex;
|
||||
} IN_PKTINFO, *PIN_PKTINFO;
|
||||
|
||||
C_ASSERT(sizeof(IN_PKTINFO) == 8);
|
||||
|
||||
typedef struct in6_pktinfo {
|
||||
IN6_ADDR ipi6_addr;
|
||||
ULONG ipi6_ifindex;
|
||||
} IN6_PKTINFO, *PIN6_PKTINFO;
|
||||
|
||||
C_ASSERT(sizeof(IN6_PKTINFO) == 20);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue