Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/traffic.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 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 within this package. | |
| 5 */ | |
| 6 #ifndef __TRAFFIC_H | |
| 7 #define __TRAFFIC_H | |
| 8 | |
| 9 #include <ntddndis.h> | |
| 10 | |
| 11 #ifdef __cplusplus | |
| 12 extern "C" { | |
| 13 #endif | |
| 14 | |
| 15 #define CURRENT_TCI_VERSION 0x0002 | |
| 16 | |
| 17 #define TC_NOTIFY_IFC_UP 1 | |
| 18 #define TC_NOTIFY_IFC_CLOSE 2 | |
| 19 #define TC_NOTIFY_IFC_CHANGE 3 | |
| 20 #define TC_NOTIFY_PARAM_CHANGED 4 | |
| 21 #define TC_NOTIFY_FLOW_CLOSE 5 | |
| 22 #define TC_INVALID_HANDLE ((HANDLE)0) | |
| 23 | |
| 24 #define MAX_STRING_LENGTH 256 | |
| 25 | |
| 26 #ifndef CALLBACK | |
| 27 #define CALLBACK __stdcall | |
| 28 #endif | |
| 29 | |
| 30 #ifndef WINAPI | |
| 31 #define WINAPI __stdcall | |
| 32 #endif | |
| 33 | |
| 34 #ifndef APIENTRY | |
| 35 #define APIENTRY WINAPI | |
| 36 #endif | |
| 37 | |
| 38 typedef VOID (CALLBACK *TCI_NOTIFY_HANDLER)(HANDLE ClRegCtx,HANDLE ClIfcCtx,ULONG Event,HANDLE SubCode,ULONG BufSize,PVOID Buffer); | |
| 39 typedef VOID (CALLBACK *TCI_ADD_FLOW_COMPLETE_HANDLER)(HANDLE ClFlowCtx,ULONG Status); | |
| 40 typedef VOID (CALLBACK *TCI_MOD_FLOW_COMPLETE_HANDLER)(HANDLE ClFlowCtx,ULONG Status); | |
| 41 typedef VOID (CALLBACK *TCI_DEL_FLOW_COMPLETE_HANDLER)(HANDLE ClFlowCtx,ULONG Status); | |
| 42 | |
| 43 typedef struct _TCI_CLIENT_FUNC_LIST { | |
| 44 TCI_NOTIFY_HANDLER ClNotifyHandler; | |
| 45 TCI_ADD_FLOW_COMPLETE_HANDLER ClAddFlowCompleteHandler; | |
| 46 TCI_MOD_FLOW_COMPLETE_HANDLER ClModifyFlowCompleteHandler; | |
| 47 TCI_DEL_FLOW_COMPLETE_HANDLER ClDeleteFlowCompleteHandler; | |
| 48 } TCI_CLIENT_FUNC_LIST,*PTCI_CLIENT_FUNC_LIST; | |
| 49 | |
| 50 typedef struct _ADDRESS_LIST_DESCRIPTOR { | |
| 51 ULONG MediaType; | |
| 52 NETWORK_ADDRESS_LIST AddressList; | |
| 53 } ADDRESS_LIST_DESCRIPTOR,*PADDRESS_LIST_DESCRIPTOR; | |
| 54 | |
| 55 typedef struct _TC_IFC_DESCRIPTOR { | |
| 56 ULONG Length; | |
| 57 LPWSTR pInterfaceName; | |
| 58 LPWSTR pInterfaceID; | |
| 59 ADDRESS_LIST_DESCRIPTOR AddressListDesc; | |
| 60 } TC_IFC_DESCRIPTOR,*PTC_IFC_DESCRIPTOR; | |
| 61 | |
| 62 typedef struct _TC_SUPPORTED_INFO_BUFFER { | |
| 63 USHORT InstanceIDLength; | |
| 64 WCHAR InstanceID[MAX_STRING_LENGTH]; | |
| 65 ADDRESS_LIST_DESCRIPTOR AddrListDesc; | |
| 66 } TC_SUPPORTED_INFO_BUFFER,*PTC_SUPPORTED_INFO_BUFFER; | |
| 67 | |
| 68 typedef struct _TC_GEN_FILTER { | |
| 69 USHORT AddressType; | |
| 70 ULONG PatternSize; | |
| 71 PVOID Pattern; | |
| 72 PVOID Mask; | |
| 73 } TC_GEN_FILTER,*PTC_GEN_FILTER; | |
| 74 | |
| 75 typedef struct _TC_GEN_FLOW { | |
| 76 FLOWSPEC SendingFlowspec; | |
| 77 FLOWSPEC ReceivingFlowspec; | |
| 78 ULONG TcObjectsLength; | |
| 79 QOS_OBJECT_HDR TcObjects[1]; | |
| 80 } TC_GEN_FLOW,*PTC_GEN_FLOW; | |
| 81 | |
| 82 typedef struct _IP_PATTERN { | |
| 83 ULONG Reserved1; | |
| 84 ULONG Reserved2; | |
| 85 ULONG SrcAddr; | |
| 86 ULONG DstAddr; | |
| 87 union { | |
| 88 struct { USHORT s_srcport,s_dstport; } S_un_ports; | |
| 89 struct { UCHAR s_type,s_code; USHORT filler; } S_un_icmp; | |
| 90 ULONG S_Spi; | |
| 91 } S_un; | |
| 92 UCHAR ProtocolId; | |
| 93 UCHAR Reserved3[3]; | |
| 94 } IP_PATTERN,*PIP_PATTERN; | |
| 95 | |
| 96 #define tcSrcPort S_un.S_un_ports.s_srcport | |
| 97 #define tcDstPort S_un.S_un_ports.s_dstport | |
| 98 #define tcIcmpType S_un.S_un_icmp.s_type | |
| 99 #define tcIcmpCode S_un.S_un_icmp.s_code | |
| 100 #define tcSpi S_un.S_Spi | |
| 101 | |
| 102 typedef struct _IPX_PATTERN { | |
| 103 struct { | |
| 104 ULONG NetworkAddress; | |
| 105 UCHAR NodeAddress[6]; | |
| 106 USHORT Socket; | |
| 107 } Src,Dest; | |
| 108 } IPX_PATTERN,*PIPX_PATTERN; | |
| 109 | |
| 110 typedef struct _ENUMERATION_BUFFER { | |
| 111 ULONG Length; | |
| 112 ULONG OwnerProcessId; | |
| 113 USHORT FlowNameLength; | |
| 114 WCHAR FlowName[MAX_STRING_LENGTH]; | |
| 115 PTC_GEN_FLOW pFlow; | |
| 116 ULONG NumberOfFilters; | |
| 117 TC_GEN_FILTER GenericFilter[1]; | |
| 118 } ENUMERATION_BUFFER,*PENUMERATION_BUFFER; | |
| 119 | |
| 120 #define QOS_TRAFFIC_GENERAL_ID_BASE 4000 | |
| 121 #define QOS_OBJECT_DS_CLASS (0x00000001 + QOS_TRAFFIC_GENERAL_ID_BASE) | |
| 122 #define QOS_OBJECT_TRAFFIC_CLASS (0x00000002 + QOS_TRAFFIC_GENERAL_ID_BASE) | |
| 123 #define QOS_OBJECT_DIFFSERV (0x00000003 + QOS_TRAFFIC_GENERAL_ID_BASE) | |
| 124 #define QOS_OBJECT_TCP_TRAFFIC (0x00000004 + QOS_TRAFFIC_GENERAL_ID_BASE) | |
| 125 #define QOS_OBJECT_FRIENDLY_NAME (0x00000005 + QOS_TRAFFIC_GENERAL_ID_BASE) | |
| 126 | |
| 127 typedef struct _QOS_FRIENDLY_NAME { | |
| 128 QOS_OBJECT_HDR ObjectHdr; | |
| 129 WCHAR FriendlyName[MAX_STRING_LENGTH]; | |
| 130 } QOS_FRIENDLY_NAME,*LPQOS_FRIENDLY_NAME; | |
| 131 | |
| 132 typedef struct _QOS_TRAFFIC_CLASS { | |
| 133 QOS_OBJECT_HDR ObjectHdr; | |
| 134 ULONG TrafficClass; | |
| 135 } QOS_TRAFFIC_CLASS,*LPQOS_TRAFFIC_CLASS; | |
| 136 | |
| 137 typedef struct _QOS_DS_CLASS { | |
| 138 QOS_OBJECT_HDR ObjectHdr; | |
| 139 ULONG DSField; | |
| 140 } QOS_DS_CLASS,*LPQOS_DS_CLASS; | |
| 141 | |
| 142 typedef struct _QOS_DIFFSERV { | |
| 143 QOS_OBJECT_HDR ObjectHdr; | |
| 144 ULONG DSFieldCount; | |
| 145 UCHAR DiffservRule[1]; | |
| 146 } QOS_DIFFSERV,*LPQOS_DIFFSERV; | |
| 147 | |
| 148 typedef struct _QOS_DIFFSERV_RULE { | |
| 149 UCHAR InboundDSField; | |
| 150 UCHAR ConformingOutboundDSField; | |
| 151 UCHAR NonConformingOutboundDSField; | |
| 152 UCHAR ConformingUserPriority; | |
| 153 UCHAR NonConformingUserPriority; | |
| 154 } QOS_DIFFSERV_RULE,*LPQOS_DIFFSERV_RULE; | |
| 155 | |
| 156 typedef struct _QOS_TCP_TRAFFIC { | |
| 157 QOS_OBJECT_HDR ObjectHdr; | |
| 158 } QOS_TCP_TRAFFIC,*LPQOS_TCP_TRAFFIC; | |
| 159 | |
| 160 #ifdef UNICODE | |
| 161 #define TcOpenInterface TcOpenInterfaceW | |
| 162 #define TcQueryFlow TcQueryFlowW | |
| 163 #define TcSetFlow TcSetFlowW | |
| 164 #define TcGetFlowName TcGetFlowNameW | |
| 165 #else | |
| 166 #define TcOpenInterface TcOpenInterfaceA | |
| 167 #define TcQueryFlow TcQueryFlowA | |
| 168 #define TcSetFlow TcSetFlowA | |
| 169 #define TcGetFlowName TcGetFlowNameA | |
| 170 #endif | |
| 171 | |
| 172 ULONG WINAPI TcRegisterClient(ULONG TciVersion,HANDLE ClRegCtx,PTCI_CLIENT_FUNC_LIST ClientHandlerList,PHANDLE pClientHandle); | |
| 173 ULONG WINAPI TcEnumerateInterfaces(HANDLE ClientHandle,PULONG pBufferSize,PTC_IFC_DESCRIPTOR InterfaceBuffer); | |
| 174 ULONG WINAPI TcOpenInterfaceA(LPSTR pInterfaceName,HANDLE ClientHandle,HANDLE ClIfcCtx,PHANDLE pIfcHandle); | |
| 175 ULONG WINAPI TcOpenInterfaceW(LPWSTR pInterfaceName,HANDLE ClientHandle,HANDLE ClIfcCtx,PHANDLE pIfcHandle); | |
| 176 ULONG WINAPI TcCloseInterface(HANDLE IfcHandle); | |
| 177 ULONG WINAPI TcQueryInterface(HANDLE IfcHandle,LPGUID pGuidParam,BOOLEAN NotifyChange,PULONG pBufferSize,PVOID Buffer); | |
| 178 ULONG WINAPI TcSetInterface(HANDLE IfcHandle,LPGUID pGuidParam,ULONG BufferSize,PVOID Buffer); | |
| 179 ULONG WINAPI TcQueryFlowA(LPSTR pFlowName,LPGUID pGuidParam,PULONG pBufferSize,PVOID Buffer); | |
| 180 ULONG WINAPI TcQueryFlowW(LPWSTR pFlowName,LPGUID pGuidParam,PULONG pBufferSize,PVOID Buffer); | |
| 181 ULONG WINAPI TcSetFlowA(LPSTR pFlowName,LPGUID pGuidParam,ULONG BufferSize,PVOID Buffer); | |
| 182 ULONG WINAPI TcSetFlowW(LPWSTR pFlowName,LPGUID pGuidParam,ULONG BufferSize,PVOID Buffer); | |
| 183 ULONG WINAPI TcAddFlow(HANDLE IfcHandle,HANDLE ClFlowCtx,ULONG Flags,PTC_GEN_FLOW pGenericFlow,PHANDLE pFlowHandle); | |
| 184 ULONG WINAPI TcGetFlowNameA(HANDLE FlowHandle,ULONG StrSize,LPSTR pFlowName); | |
| 185 ULONG WINAPI TcGetFlowNameW(HANDLE FlowHandle,ULONG StrSize,LPWSTR pFlowName); | |
| 186 ULONG WINAPI TcModifyFlow(HANDLE FlowHandle,PTC_GEN_FLOW pGenericFlow); | |
| 187 ULONG WINAPI TcAddFilter(HANDLE FlowHandle,PTC_GEN_FILTER pGenericFilter,PHANDLE pFilterHandle); | |
| 188 ULONG WINAPI TcDeregisterClient(HANDLE ClientHandle); | |
| 189 ULONG WINAPI TcDeleteFlow(HANDLE FlowHandle); | |
| 190 ULONG WINAPI TcDeleteFilter(HANDLE FilterHandle); | |
| 191 ULONG WINAPI TcEnumerateFlows(HANDLE IfcHandle,PHANDLE pEnumHandle,PULONG pFlowCount,PULONG pBufSize,PENUMERATION_BUFFER Buffer); | |
| 192 | |
| 193 #ifdef __cplusplus | |
| 194 } | |
| 195 #endif | |
| 196 #endif |
