| /** |
| * This file has no copyright assigned and is placed in the Public Domain. |
| * This file is part of the w64 mingw-runtime package. |
| * No warranty is given; refer to the file DISCLAIMER.PD within this package. |
| */ |
| #ifndef _MSTCPIP_ |
| #define _MSTCPIP_ |
| |
| #include <_mingw_unicode.h> |
| |
| 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 |
| |
| #if (_WIN32_WINNT >= 0x0502) |
| #define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x00000001 |
| #define SOCKET_SETTINGS_ALLOW_INSECURE 0x00000002 |
| |
| typedef enum _SOCKET_SECURITY_PROTOCOL { |
| SOCKET_SECURITY_PROTOCOL_DEFAULT, |
| SOCKET_SECURITY_PROTOCOL_IPSEC, |
| SOCKET_SECURITY_PROTOCOL_INVALID |
| } SOCKET_SECURITY_PROTOCOL; |
| |
| 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; |
| |
| #define RtlIpv6AddressToString __MINGW_NAME_AW(RtlIpv6AddressToString) |
| #define RtlIpv6AddressToStringEx __MINGW_NAME_AW(RtlIpv6AddressToStringEx) |
| |
| LPWSTR NTAPI RtlIpv6AddressToStringA( |
| const IN6_ADDR *Addr, |
| LPSTR S |
| ); |
| |
| LPSTR 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) |
| LPTSTR NTAPI RtlIpv4AddressToStringA( |
| const IN_ADDR *Addr, |
| LPSTR S |
| ); |
| |
| LPTSTR 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( |
| PCSTR AddressString, |
| IN6_ADDR *Address, |
| PULONG ScopeId, |
| PUSHORT Port |
| ); |
| |
| #endif /*(_WIN32_WINNT >= 0x0502)*/ |
| |
| #endif /* _MSTCPIP_ */ |
| |