mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-20 09:04:44 +00:00
146 lines
5.4 KiB
C
146 lines
5.4 KiB
C
/**
|
|
* This file has no copyright assigned and is placed in the Public Domain.
|
|
* This file is part of the mingw-w64 runtime package.
|
|
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
|
*/
|
|
#ifndef _MSTCPIP_
|
|
#define _MSTCPIP_
|
|
|
|
#include <_mingw_unicode.h>
|
|
#include <winapifamily.h>
|
|
|
|
#ifdef __LP64__
|
|
#pragma push_macro("u_long")
|
|
#undef u_long
|
|
#define u_long __ms_u_long
|
|
#endif
|
|
|
|
struct tcp_keepalive {
|
|
u_long onoff;
|
|
u_long keepalivetime;
|
|
u_long keepaliveinterval;
|
|
};
|
|
|
|
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
|
|
#define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)
|
|
#define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3)
|
|
#define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4)
|
|
#define SIO_ABSORB_RTRALERT _WSAIOW(IOC_VENDOR,5)
|
|
#define SIO_UCAST_IF _WSAIOW(IOC_VENDOR,6)
|
|
#define SIO_LIMIT_BROADCASTS _WSAIOW(IOC_VENDOR,7)
|
|
#define SIO_INDEX_BIND _WSAIOW(IOC_VENDOR,8)
|
|
#define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9)
|
|
#define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10)
|
|
#define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11)
|
|
|
|
#define RCVALL_OFF 0
|
|
#define RCVALL_ON 1
|
|
#define RCVALL_SOCKETLEVELONLY 2
|
|
#define RCVALL_IPLEVEL 3
|
|
|
|
#if (_WIN32_WINNT >= 0x0502)
|
|
typedef enum _SOCKET_SECURITY_PROTOCOL {
|
|
SOCKET_SECURITY_PROTOCOL_DEFAULT,
|
|
SOCKET_SECURITY_PROTOCOL_IPSEC,
|
|
#if NTDDI_VERSION >= NTDDI_WIN7
|
|
SOCKET_SECURITY_PROTOCOL_IPSEC2,
|
|
#endif
|
|
SOCKET_SECURITY_PROTOCOL_INVALID
|
|
} SOCKET_SECURITY_PROTOCOL;
|
|
|
|
#define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x1
|
|
#define SOCKET_SETTINGS_ALLOW_INSECURE 0x2
|
|
|
|
typedef enum _SOCKET_USAGE_TYPE {
|
|
SYSTEM_CRITICAL_SOCKET = 1
|
|
} SOCKET_USAGE_TYPE;
|
|
|
|
typedef struct _SOCKET_PEER_TARGET_NAME {
|
|
SOCKET_SECURITY_PROTOCOL SecurityProtocol;
|
|
SOCKADDR_STORAGE PeerAddress;
|
|
ULONG PeerTargetNameStringLen;
|
|
wchar_t AllStrings[];
|
|
} SOCKET_PEER_TARGET_NAME;
|
|
|
|
#define SOCKET_INFO_CONNECTION_SECURED 0x00000001
|
|
#define SOCKET_INFO_CONNECTION_ENCRYPTED 0x00000002
|
|
#define SOCKET_INFO_CONNECTION_IMPERSONATED 0x00000004
|
|
|
|
typedef struct _SOCKET_SECURITY_QUERY_INFO {
|
|
SOCKET_SECURITY_PROTOCOL SecurityProtocol;
|
|
ULONG Flags;
|
|
UINT64 PeerApplicationAccessTokenHandle;
|
|
UINT64 PeerMachineAccessTokenHandle;
|
|
} SOCKET_SECURITY_QUERY_INFO;
|
|
|
|
typedef struct _SOCKET_SECURITY_QUERY_TEMPLATE {
|
|
SOCKET_SECURITY_PROTOCOL SecurityProtocol;
|
|
SOCKADDR_STORAGE PeerAddress;
|
|
ULONG PeerTokenAccessMask;
|
|
} SOCKET_SECURITY_QUERY_TEMPLATE;
|
|
|
|
typedef struct _SOCKET_SECURITY_SETTINGS {
|
|
SOCKET_SECURITY_PROTOCOL SecurityProtocol;
|
|
ULONG SecurityFlags;
|
|
} SOCKET_SECURITY_SETTINGS;
|
|
|
|
#define SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION 0x00000001
|
|
|
|
typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC {
|
|
SOCKET_SECURITY_PROTOCOL SecurityProtocol;
|
|
ULONG SecurityFlags;
|
|
ULONG IpsecFlags;
|
|
GUID AuthipMMPolicyKey;
|
|
GUID AuthipQMPolicyKey;
|
|
GUID Reserved;
|
|
UINT64 Reserved2;
|
|
ULONG UserNameStringLen;
|
|
ULONG DomainNameStringLen;
|
|
ULONG PasswordStringLen;
|
|
wchar_t AllStrings[];
|
|
} SOCKET_SECURITY_SETTINGS_IPSEC;
|
|
|
|
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
|
|
|
|
#define RtlIpv6AddressToString __MINGW_NAME_AW(RtlIpv6AddressToString)
|
|
#define RtlIpv6AddressToStringEx __MINGW_NAME_AW(RtlIpv6AddressToStringEx)
|
|
|
|
#ifdef _WS2IPDEF_
|
|
|
|
LPSTR NTAPI RtlIpv6AddressToStringA(const IN6_ADDR *Addr, LPSTR S);
|
|
LPWSTR NTAPI RtlIpv6AddressToStringW(const IN6_ADDR *Addr, LPWSTR S);
|
|
|
|
LONG NTAPI RtlIpv6AddressToStringExA(const IN6_ADDR *Address, ULONG ScopeId, USHORT Port, LPSTR AddressString, PULONG AddressStringLength);
|
|
LONG NTAPI RtlIpv6AddressToStringExW(const IN6_ADDR *Address, ULONG ScopeId, USHORT Port, LPWSTR AddressString, PULONG AddressStringLength);
|
|
|
|
#define RtlIpv4AddressToString __MINGW_NAME_AW(RtlIpv4AddressToString)
|
|
LPSTR NTAPI RtlIpv4AddressToStringA(const IN_ADDR *Addr, LPSTR S);
|
|
LPWSTR NTAPI RtlIpv4AddressToStringW(const IN_ADDR *Addr, LPWSTR S);
|
|
|
|
#define RtlIpv4AddressToStringEx __MINGW_NAME_AW(RtlIpv4AddressToStringEx)
|
|
LONG NTAPI RtlIpv4AddressToStringExA(const IN_ADDR *Address, USHORT Port, LPSTR AddressString, PULONG AddressStringLength);
|
|
LONG NTAPI RtlIpv4AddressToStringExW(const IN_ADDR *Address, USHORT Port, LPWSTR AddressString, PULONG AddressStringLength);
|
|
|
|
#define RtlIpv4StringToAddress __MINGW_NAME_AW(RtlIpv4StringToAddress)
|
|
LONG NTAPI RtlIpv4StringToAddressA(PCSTR S, BOOLEAN Strict, LPSTR *Terminator, IN_ADDR *Addr);
|
|
LONG NTAPI RtlIpv4StringToAddressW(PCWSTR S, BOOLEAN Strict, LPWSTR *Terminator, IN_ADDR *Addr);
|
|
|
|
#define RtlIpv4StringToAddressEx __MINGW_NAME_AW(RtlIpv4StringToAddressEx)
|
|
LONG NTAPI RtlIpv4StringToAddressExA(PCSTR AddressString, BOOLEAN Strict, IN_ADDR *Address, PUSHORT Port);
|
|
LONG NTAPI RtlIpv4StringToAddressExW(PCWSTR AddressString, BOOLEAN Strict, IN_ADDR *Address, PUSHORT Port);
|
|
|
|
#define RtlIpv6StringToAddressEx __MINGW_NAME_AW(RtlIpv6StringToAddressEx)
|
|
LONG NTAPI RtlIpv6StringToAddressExA(PCSTR AddressString, IN6_ADDR *Address, PULONG ScopeId, PUSHORT Port);
|
|
LONG NTAPI RtlIpv6StringToAddressExW(PCWSTR AddressString, IN6_ADDR *Address, PULONG ScopeId, PUSHORT Port);
|
|
|
|
#endif /* _WS2IPDEF_ */
|
|
|
|
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
|
|
#endif /*(_WIN32_WINNT >= 0x0502)*/
|
|
|
|
#ifdef __LP64__
|
|
#pragma pop_macro("u_long")
|
|
#endif
|
|
|
|
#endif /* _MSTCPIP_ */
|
|
|