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