Re: [Mingw-w64-public] [PATCH] headers: Add some names in mstcpip.h

2021-10-14 Thread LIU Hao

在 2021-10-11 14:13, Biswapriyo Nath 写道:

 From fcf842b9164c76c8a19f321d4c124ba36cafb95e Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath
Date: Mon, 11 Oct 2021 11:41:39 +0530
Subject: [PATCH] headers: Add some names in mstcpip.h

Signed-off-by: Biswapriyo Nath
---
  mingw-w64-headers/include/mstcpip.h | 241 +++-
  1 file changed, 237 insertions(+), 4 deletions(-)


Thanks for the patch. I pushed it to master.


--
Best regards,
LIU Hao



OpenPGP_signature
Description: OpenPGP digital signature
___
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public


[Mingw-w64-public] [PATCH] headers: Add some names in mstcpip.h

2021-10-10 Thread Biswapriyo Nath

From fcf842b9164c76c8a19f321d4c124ba36cafb95e Mon Sep 17 00:00:00 2001
From: Biswapriyo Nath 
Date: Mon, 11 Oct 2021 11:41:39 +0530
Subject: [PATCH] headers: Add some names in mstcpip.h

Signed-off-by: Biswapriyo Nath 
---
 mingw-w64-headers/include/mstcpip.h | 241 +++-
 1 file changed, 237 insertions(+), 4 deletions(-)

diff --git a/mingw-w64-headers/include/mstcpip.h 
b/mingw-w64-headers/include/mstcpip.h
index b040ba7..1e1bc24 100644
--- a/mingw-w64-headers/include/mstcpip.h
+++ b/mingw-w64-headers/include/mstcpip.h
@@ -15,12 +15,68 @@
 #define u_long __ms_u_long
 #endif
 
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
+typedef enum _TCPSTATE {
+  TCPSTATE_CLOSED,
+  TCPSTATE_LISTEN,
+  TCPSTATE_SYN_SENT,
+  TCPSTATE_SYN_RCVD,
+  TCPSTATE_ESTABLISHED,
+  TCPSTATE_FIN_WAIT_1,
+  TCPSTATE_FIN_WAIT_2,
+  TCPSTATE_CLOSE_WAIT,
+  TCPSTATE_CLOSING,
+  TCPSTATE_LAST_ACK,
+  TCPSTATE_TIME_WAIT,
+  TCPSTATE_MAX
+} TCPSTATE;
+#endif
+
+#ifndef _TRANSPORT_SETTING_COMMON_
+#define _TRANSPORT_SETTING_COMMON_
+typedef struct TRANSPORT_SETTING_ID {
+  GUID Guid;
+} TRANSPORT_SETTING_ID, *PTRANSPORT_SETTING_ID;
+#endif
+
 struct tcp_keepalive {
   u_long onoff;
   u_long keepalivetime;
   u_long keepaliveinterval;
 };
 
+typedef enum {
+  CONTROL_CHANNEL_TRIGGER_STATUS_INVALID = 0,
+  CONTROL_CHANNEL_TRIGGER_STATUS_SOFTWARE_SLOT_ALLOCATED = 1,
+  CONTROL_CHANNEL_TRIGGER_STATUS_HARDWARE_SLOT_ALLOCATED = 2,
+  CONTROL_CHANNEL_TRIGGER_STATUS_POLICY_ERROR = 3,
+  CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR = 4,
+  CONTROL_CHANNEL_TRIGGER_STATUS_TRANSPORT_DISCONNECTED = 5,
+  CONTROL_CHANNEL_TRIGGER_STATUS_SERVICE_UNAVAILABLE = 6
+} CONTROL_CHANNEL_TRIGGER_STATUS, *PCONTROL_CHANNEL_TRIGGER_STATUS;
+
+#define CONTROL_CHANNEL_TRIGGER_STATUS_MAX 
CONTROL_CHANNEL_TRIGGER_STATUS_SYSTEM_ERROR
+
+typedef struct _REAL_TIME_NOTIFICATION_SETTING_INPUT {
+  TRANSPORT_SETTING_ID TransportSettingId;
+  GUID BrokerEventGuid;
+} REAL_TIME_NOTIFICATION_SETTING_INPUT, *PREAL_TIME_NOTIFICATION_SETTING_INPUT;
+
+typedef struct _REAL_TIME_NOTIFICATION_SETTING_INPUT_EX {
+  TRANSPORT_SETTING_ID TransportSettingId;
+  GUID BrokerEventGuid;
+  BOOLEAN Unmark;
+} REAL_TIME_NOTIFICATION_SETTING_INPUT_EX, 
*PREAL_TIME_NOTIFICATION_SETTING_INPUT_EX;
+
+typedef struct _REAL_TIME_NOTIFICATION_SETTING_OUTPUT {
+  CONTROL_CHANNEL_TRIGGER_STATUS ChannelStatus;
+} REAL_TIME_NOTIFICATION_SETTING_OUTPUT, 
*PREAL_TIME_NOTIFICATION_SETTING_OUTPUT;
+
+typedef struct _ASSOCIATE_NAMERES_CONTEXT_INPUT {
+  TRANSPORT_SETTING_ID TransportSettingId;
+  UINT64 Handle;
+} ASSOCIATE_NAMERES_CONTEXT_INPUT, *PASSOCIATE_NAMERES_CONTEXT_INPUT;
+
 #define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
 #define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)
 #define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3)
@@ -32,11 +88,188 @@ struct tcp_keepalive {
 #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 SIO_RCVALL_MCAST_IF _WSAIOW(IOC_VENDOR,13)
+#define SIO_RCVALL_IF _WSAIOW(IOC_VENDOR,14)
+#define SIO_LOOPBACK_FAST_PATH _WSAIOW(IOC_VENDOR,16)
+#define SIO_TCP_INITIAL_RTO _WSAIOW(IOC_VENDOR,17)
+#define SIO_APPLY_TRANSPORT_SETTING _WSAIOW(IOC_VENDOR,19)
+#define SIO_QUERY_TRANSPORT_SETTING _WSAIOW(IOC_VENDOR,20)
+#define SIO_TCP_SET_ICW _WSAIOW(IOC_VENDOR,22)
+#define SIO_TCP_SET_ACK_FREQUENCY _WSAIOW(IOC_VENDOR,23)
+#if NTDDI_VERSION >= NTDDI_WIN10_RS3
+#define SIO_SET_PRIORITY_HINT _WSAIOW(IOC_VENDOR,24)
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_FE
+#define SIO_PRIORITY_HINT SIO_SET_PRIORITY_HINT
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
+#define SIO_TCP_INFO _WSAIORW(IOC_VENDOR,39)
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_VB
+#define SIO_CPU_AFFINITY _WSAIOW(IOC_VENDOR,21)
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_FE
+
+#define SIO_TIMESTAMPING _WSAIOW(IOC_VENDOR, 235)
+
+typedef struct _TIMESTAMPING_CONFIG {
+  ULONG Flags;
+  USHORT TxTimestampsBuffered;
+} TIMESTAMPING_CONFIG, *PTIMESTAMPING_CONFIG;
+
+#define TIMESTAMPING_FLAG_RX 0x1
+#define TIMESTAMPING_FLAG_TX 0x2
+
+#define SO_TIMESTAMP 0x300A
+
+#define SO_TIMESTAMP_ID 0x300B
+
+#define SIO_GET_TX_TIMESTAMP _WSAIOW(IOC_VENDOR, 234)
+
+typedef enum {
+  SocketPriorityHintVeryLow = 0,
+  SocketPriorityHintLow,
+  SocketPriorityHintNormal,
+  SocketMaximumPriorityHintType
+} SOCKET_PRIORITY_HINT, *PSOCKET_PRIORITY_HINT;
+
+typedef struct _PRIORITY_STATUS {
+  SOCKET_PRIORITY_HINT Sender;
+  SOCKET_PRIORITY_HINT Receiver;
+} PRIORITY_STATUS, *PPRIORITY_STATUS;
+#endif /* NTDDI_WIN10_FE */
+
+typedef enum {
+  RCVALL_OFF = 0,
+  RCVALL_ON = 1,
+  RCVALL_SOCKETLEVELONLY = 2,
+  RCVALL_IPLEVEL = 3
+} RCVALL_VALUE, *PRCVALL_VALUE;
+
+#define RCVALL_MAX RCVALL_IPLEVEL
+
+typedef struct {
+  RCVALL_VALUE Mode;
+  ULONG Interface;
+} RCVALL_IF, *PRCVALL_IF;
+
+#define TCP_INITIAL_RTO_UNSPECIFIED_RTT ((USHORT) -1)
+#define TCP_INITIAL_RTO_UNSPECIFIED_MAX_SYN_RETRANSMISSIONS ((UCHAR) -1)
+
+#define TCP_INITIAL_RTO_DEFAU