/*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: mswsock.h Abstract: This module contains the Microsoft-specific extensions to the Windows Sockets API. Revision History: --*/ #ifndef _MSWSOCKDEF_ #define _MSWSOCKDEF_ #if _MSC_VER > 1000 #pragma once #endif #if(_WIN32_WINNT >= 0x0600) #ifdef _MSC_VER #define MSWSOCKDEF_INLINE __inline #else #define MSWSOCKDEF_INLINE extern inline /* GNU style */ #endif #endif //(_WIN32_WINNT>=0x0600) #ifndef ASSERT #define MSWSOCKDEF_ASSERT_UNDEFINED #define ASSERT(exp) ((VOID) 0) #endif #ifdef __cplusplus extern "C" { #endif #if(_WIN32_WINNT >= 0x0600) #ifdef _WS2DEF_ extern CONST UCHAR sockaddr_size[AF_MAX]; MSWSOCKDEF_INLINE UCHAR SOCKADDR_SIZE(__in ADDRESS_FAMILY af) { return (UCHAR)((af < AF_MAX) ? sockaddr_size[af] : sockaddr_size[AF_UNSPEC]); } MSWSOCKDEF_INLINE SCOPE_LEVEL ScopeLevel( __in SCOPE_ID ScopeId ) { // // We can't declare the Level field of type SCOPE_LEVEL directly, // since it gets sign extended to be negative. We can, however, // safely cast. // return (SCOPE_LEVEL)ScopeId.Level; } #endif // _WS2DEF_ #define SIO_SET_COMPATIBILITY_MODE _WSAIOW(IOC_VENDOR,300) typedef enum _WSA_COMPATIBILITY_BEHAVIOR_ID { WsaBehaviorAll = 0, WsaBehaviorReceiveBuffering, WsaBehaviorAutoTuning } WSA_COMPATIBILITY_BEHAVIOR_ID, *PWSA_COMPATIBILITY_BEHAVIOR_ID; typedef struct _WSA_COMPATIBILITY_MODE { WSA_COMPATIBILITY_BEHAVIOR_ID BehaviorId; ULONG TargetOsVersion; } WSA_COMPATIBILITY_MODE, *PWSA_COMPATIBILITY_MODE; #endif //(_WIN32_WINNT>=0x0600) #ifdef __cplusplus } #endif #ifdef MSWSOCKDEF_ASSERT_UNDEFINED #undef ASSERT #endif #endif /* _MSWSOCKDEF_ */