xpmgr/BuildTools/Include/MSWSockDef.h

98 lines
1.7 KiB
C

/*++
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_ */