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