Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /**
  2.  * This file has no copyright assigned and is placed in the Public Domain.
  3.  * This file is part of the w64 mingw-runtime package.
  4.  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5.  */
  6. #ifndef _MSTCPIP_
  7. #define _MSTCPIP_
  8.  
  9. #include <_mingw_unicode.h>
  10.  
  11. struct tcp_keepalive {
  12.   u_long onoff;
  13.   u_long keepalivetime;
  14.   u_long keepaliveinterval;
  15. };
  16.  
  17. #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
  18. #define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)
  19. #define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3)
  20. #define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4)
  21. #define SIO_ABSORB_RTRALERT _WSAIOW(IOC_VENDOR,5)
  22. #define SIO_UCAST_IF _WSAIOW(IOC_VENDOR,6)
  23. #define SIO_LIMIT_BROADCASTS _WSAIOW(IOC_VENDOR,7)
  24. #define SIO_INDEX_BIND _WSAIOW(IOC_VENDOR,8)
  25. #define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9)
  26. #define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10)
  27. #define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11)
  28.  
  29. #define RCVALL_OFF 0
  30. #define RCVALL_ON 1
  31. #define RCVALL_SOCKETLEVELONLY 2
  32.  
  33. #if (_WIN32_WINNT >= 0x0502)
  34. #define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x00000001
  35. #define SOCKET_SETTINGS_ALLOW_INSECURE 0x00000002
  36.  
  37. typedef enum _SOCKET_SECURITY_PROTOCOL {
  38.   SOCKET_SECURITY_PROTOCOL_DEFAULT,
  39.   SOCKET_SECURITY_PROTOCOL_IPSEC,
  40.   SOCKET_SECURITY_PROTOCOL_INVALID
  41. } SOCKET_SECURITY_PROTOCOL;
  42.  
  43. typedef enum _SOCKET_USAGE_TYPE {
  44.   SYSTEM_CRITICAL_SOCKET   = 1
  45. } SOCKET_USAGE_TYPE;
  46.  
  47. typedef struct _SOCKET_PEER_TARGET_NAME {
  48.   SOCKET_SECURITY_PROTOCOL SecurityProtocol;
  49.   SOCKADDR_STORAGE         PeerAddress;
  50.   ULONG                    PeerTargetNameStringLen;
  51.   wchar_t                  AllStrings[];
  52. } SOCKET_PEER_TARGET_NAME;
  53.  
  54. #define SOCKET_INFO_CONNECTION_SECURED          0x00000001
  55. #define SOCKET_INFO_CONNECTION_ENCRYPTED        0x00000002
  56. #define SOCKET_INFO_CONNECTION_IMPERSONATED     0x00000004
  57.  
  58. typedef struct _SOCKET_SECURITY_QUERY_INFO {
  59.   SOCKET_SECURITY_PROTOCOL SecurityProtocol;
  60.   ULONG                    Flags;
  61.   UINT64                   PeerApplicationAccessTokenHandle;
  62.   UINT64                   PeerMachineAccessTokenHandle;
  63. } SOCKET_SECURITY_QUERY_INFO;
  64.  
  65. typedef struct _SOCKET_SECURITY_QUERY_TEMPLATE {
  66.   SOCKET_SECURITY_PROTOCOL SecurityProtocol;
  67.   SOCKADDR_STORAGE         PeerAddress;
  68.   ULONG                    PeerTokenAccessMask;
  69. } SOCKET_SECURITY_QUERY_TEMPLATE;
  70.  
  71. typedef struct _SOCKET_SECURITY_SETTINGS {
  72.   SOCKET_SECURITY_PROTOCOL SecurityProtocol;
  73.   ULONG                    SecurityFlags;
  74. } SOCKET_SECURITY_SETTINGS;
  75.  
  76. #define SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION 0x00000001
  77.  
  78. typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC {
  79.   SOCKET_SECURITY_PROTOCOL SecurityProtocol;
  80.   ULONG                    SecurityFlags;
  81.   ULONG                    IpsecFlags;
  82.   GUID                     AuthipMMPolicyKey;
  83.   GUID                     AuthipQMPolicyKey;
  84.   GUID                     Reserved;
  85.   UINT64                   Reserved2;
  86.   ULONG                    UserNameStringLen;
  87.   ULONG                    DomainNameStringLen;
  88.   ULONG                    PasswordStringLen;
  89.   wchar_t                  AllStrings[];
  90. } SOCKET_SECURITY_SETTINGS_IPSEC;
  91.  
  92. #define RtlIpv6AddressToString __MINGW_NAME_AW(RtlIpv6AddressToString)
  93. #define RtlIpv6AddressToStringEx __MINGW_NAME_AW(RtlIpv6AddressToStringEx)
  94.  
  95. LPWSTR NTAPI RtlIpv6AddressToStringA(
  96.   const IN6_ADDR *Addr,
  97.   LPSTR S
  98. );
  99.  
  100. LPSTR NTAPI RtlIpv6AddressToStringW(
  101.   const IN6_ADDR *Addr,
  102.   LPWSTR S
  103. );
  104.  
  105. LONG NTAPI RtlIpv6AddressToStringExA(
  106.   const IN6_ADDR *Address,
  107.   ULONG ScopeId,
  108.   USHORT Port,
  109.   LPSTR AddressString,
  110.   PULONG AddressStringLength
  111. );
  112.  
  113. LONG NTAPI RtlIpv6AddressToStringExW(
  114.   const IN6_ADDR *Address,
  115.   ULONG ScopeId,
  116.   USHORT Port,
  117.   LPWSTR AddressString,
  118.   PULONG AddressStringLength
  119. );
  120.  
  121. #define RtlIpv4AddressToString __MINGW_NAME_AW(RtlIpv4AddressToString)
  122. LPTSTR NTAPI RtlIpv4AddressToStringA(
  123.   const IN_ADDR *Addr,
  124.   LPSTR S
  125. );
  126.  
  127. LPTSTR NTAPI RtlIpv4AddressToStringW(
  128.   const IN_ADDR *Addr,
  129.   LPWSTR S
  130. );
  131.  
  132. #define RtlIpv4AddressToStringEx __MINGW_NAME_AW(RtlIpv4AddressToStringEx)
  133. LONG NTAPI RtlIpv4AddressToStringExA(
  134.   const IN_ADDR *Address,
  135.   USHORT Port,
  136.   LPSTR AddressString,
  137.   PULONG AddressStringLength
  138. );
  139.  
  140. LONG NTAPI RtlIpv4AddressToStringExW(
  141.   const IN_ADDR *Address,
  142.   USHORT Port,
  143.   LPWSTR AddressString,
  144.   PULONG AddressStringLength
  145. );
  146.  
  147. #define RtlIpv4StringToAddress __MINGW_NAME_AW(RtlIpv4StringToAddress)
  148. LONG NTAPI RtlIpv4StringToAddressA(
  149.   PCSTR S,
  150.   BOOLEAN Strict,
  151.   LPSTR *Terminator,
  152.   IN_ADDR *Addr
  153. );
  154.  
  155. LONG NTAPI RtlIpv4StringToAddressW(
  156.   PCWSTR S,
  157.   BOOLEAN Strict,
  158.   LPWSTR *Terminator,
  159.   IN_ADDR *Addr
  160. );
  161.  
  162. #define RtlIpv4StringToAddressEx __MINGW_NAME_AW(RtlIpv4StringToAddressEx)
  163. LONG NTAPI RtlIpv4StringToAddressExA(
  164.   PCSTR AddressString,
  165.   BOOLEAN Strict,
  166.   IN_ADDR *Address,
  167.   PUSHORT Port
  168. );
  169.  
  170. LONG NTAPI RtlIpv4StringToAddressExW(
  171.   PCWSTR AddressString,
  172.   BOOLEAN Strict,
  173.   IN_ADDR *Address,
  174.   PUSHORT Port
  175. );
  176.  
  177. #define RtlIpv6StringToAddressEx __MINGW_NAME_AW(RtlIpv6StringToAddressEx)
  178. LONG NTAPI RtlIpv6StringToAddressExA(
  179.   PCSTR AddressString,
  180.   IN6_ADDR *Address,
  181.   PULONG ScopeId,
  182.   PUSHORT Port
  183. );
  184.  
  185. LONG NTAPI RtlIpv6StringToAddressExW(
  186.   PCSTR AddressString,
  187.   IN6_ADDR *Address,
  188.   PULONG ScopeId,
  189.   PUSHORT Port
  190. );
  191.  
  192. #endif /*(_WIN32_WINNT >= 0x0502)*/
  193.  
  194. #endif /* _MSTCPIP_ */
  195.  
  196.