NetSim Source Code Help
Loading...
Searching...
No Matches
windivert.h File Reference
#include <windows.h>
Include dependency graph for windivert.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  WINDIVERT_DATA_NETWORK
 
struct  WINDIVERT_DATA_FLOW
 
struct  WINDIVERT_DATA_SOCKET
 
struct  WINDIVERT_DATA_REFLECT
 
struct  WINDIVERT_ADDRESS
 
struct  WINDIVERT_IPHDR
 
struct  WINDIVERT_IPV6HDR
 
struct  WINDIVERT_ICMPHDR
 
struct  WINDIVERT_ICMPV6HDR
 
struct  WINDIVERT_TCPHDR
 
struct  WINDIVERT_UDPHDR
 

Macros

#define WINDIVERTEXPORT   __declspec(dllimport)
 
#define WINDIVERT_FLAG_SNIFF   0x0001
 
#define WINDIVERT_FLAG_DROP   0x0002
 
#define WINDIVERT_FLAG_RECV_ONLY   0x0004
 
#define WINDIVERT_FLAG_READ_ONLY   WINDIVERT_FLAG_RECV_ONLY
 
#define WINDIVERT_FLAG_SEND_ONLY   0x0008
 
#define WINDIVERT_FLAG_WRITE_ONLY   WINDIVERT_FLAG_SEND_ONLY
 
#define WINDIVERT_FLAG_NO_INSTALL   0x0010
 
#define WINDIVERT_PARAM_MAX   WINDIVERT_PARAM_VERSION_MINOR
 
#define WINDIVERT_SHUTDOWN_MAX   WINDIVERT_SHUTDOWN_BOTH
 
#define WINDIVERT_PRIORITY_HIGHEST   30000
 
#define WINDIVERT_PRIORITY_LOWEST   (-WINDIVERT_PRIORITY_HIGHEST)
 
#define WINDIVERT_PARAM_QUEUE_LENGTH_DEFAULT   4096
 
#define WINDIVERT_PARAM_QUEUE_LENGTH_MIN   32
 
#define WINDIVERT_PARAM_QUEUE_LENGTH_MAX   16384
 
#define WINDIVERT_PARAM_QUEUE_TIME_DEFAULT   2000 /* 2s */
 
#define WINDIVERT_PARAM_QUEUE_TIME_MIN   100 /* 100ms */
 
#define WINDIVERT_PARAM_QUEUE_TIME_MAX   16000 /* 16s */
 
#define WINDIVERT_PARAM_QUEUE_SIZE_DEFAULT   4194304 /* 4MB */
 
#define WINDIVERT_PARAM_QUEUE_SIZE_MIN   65535 /* 64KB */
 
#define WINDIVERT_PARAM_QUEUE_SIZE_MAX   33554432 /* 32MB */
 
#define WINDIVERT_BATCH_MAX   0xFF /* 255 */
 
#define WINDIVERT_MTU_MAX   (40 + 0xFFFF)
 
#define WINDIVERT_IPHDR_GET_FRAGOFF(hdr)    (((hdr)->FragOff0) & 0xFF1F)
 
#define WINDIVERT_IPHDR_GET_MF(hdr)    ((((hdr)->FragOff0) & 0x0020) != 0)
 
#define WINDIVERT_IPHDR_GET_DF(hdr)    ((((hdr)->FragOff0) & 0x0040) != 0)
 
#define WINDIVERT_IPHDR_GET_RESERVED(hdr)    ((((hdr)->FragOff0) & 0x0080) != 0)
 
#define WINDIVERT_IPHDR_SET_FRAGOFF(hdr, val)
 
#define WINDIVERT_IPHDR_SET_MF(hdr, val)
 
#define WINDIVERT_IPHDR_SET_DF(hdr, val)
 
#define WINDIVERT_IPHDR_SET_RESERVED(hdr, val)
 
#define WINDIVERT_IPV6HDR_GET_TRAFFICCLASS(hdr)    ((((hdr)->TrafficClass0) << 4) | ((hdr)->TrafficClass1))
 
#define WINDIVERT_IPV6HDR_GET_FLOWLABEL(hdr)    ((((UINT32)(hdr)->FlowLabel0) << 16) | ((UINT32)(hdr)->FlowLabel1))
 
#define WINDIVERT_IPV6HDR_SET_TRAFFICCLASS(hdr, val)
 
#define WINDIVERT_IPV6HDR_SET_FLOWLABEL(hdr, val)
 
#define WINDIVERT_HELPER_NO_IP_CHECKSUM   1
 
#define WINDIVERT_HELPER_NO_ICMP_CHECKSUM   2
 
#define WINDIVERT_HELPER_NO_ICMPV6_CHECKSUM   4
 
#define WINDIVERT_HELPER_NO_TCP_CHECKSUM   8
 
#define WINDIVERT_HELPER_NO_UDP_CHECKSUM   16
 

Typedefs

typedef enum WINDIVERT_LAYERPWINDIVERT_LAYER
 
typedef struct WINDIVERT_DATA_NETWORKPWINDIVERT_DATA_NETWORK
 
typedef struct WINDIVERT_DATA_FLOWPWINDIVERT_DATA_FLOW
 
typedef struct WINDIVERT_DATA_SOCKETPWINDIVERT_DATA_SOCKET
 
typedef struct WINDIVERT_DATA_REFLECTPWINDIVERT_DATA_REFLECT
 
typedef struct WINDIVERT_ADDRESSPWINDIVERT_ADDRESS
 
typedef enum WINDIVERT_EVENTPWINDIVERT_EVENT
 
typedef enum WINDIVERT_PARAMPWINDIVERT_PARAM
 
typedef enum WINDIVERT_SHUTDOWNPWINDIVERT_SHUTDOWN
 
typedef struct WINDIVERT_IPHDRPWINDIVERT_IPHDR
 
typedef struct WINDIVERT_IPV6HDRPWINDIVERT_IPV6HDR
 
typedef struct WINDIVERT_ICMPHDRPWINDIVERT_ICMPHDR
 
typedef struct WINDIVERT_ICMPV6HDRPWINDIVERT_ICMPV6HDR
 
typedef struct WINDIVERT_TCPHDRPWINDIVERT_TCPHDR
 
typedef struct WINDIVERT_UDPHDRPWINDIVERT_UDPHDR
 

Enumerations

enum  WINDIVERT_LAYER {
  WINDIVERT_LAYER_NETWORK = 0 , WINDIVERT_LAYER_NETWORK_FORWARD = 1 , WINDIVERT_LAYER_FLOW = 2 , WINDIVERT_LAYER_SOCKET = 3 ,
  WINDIVERT_LAYER_REFLECT = 4
}
 
enum  WINDIVERT_EVENT {
  WINDIVERT_EVENT_NETWORK_PACKET = 0 , WINDIVERT_EVENT_FLOW_ESTABLISHED = 1 , WINDIVERT_EVENT_FLOW_DELETED = 2 , WINDIVERT_EVENT_SOCKET_BIND = 3 ,
  WINDIVERT_EVENT_SOCKET_CONNECT = 4 , WINDIVERT_EVENT_SOCKET_LISTEN = 5 , WINDIVERT_EVENT_SOCKET_ACCEPT = 6 , WINDIVERT_EVENT_SOCKET_CLOSE = 7 ,
  WINDIVERT_EVENT_REFLECT_OPEN = 8 , WINDIVERT_EVENT_REFLECT_CLOSE = 9
}
 
enum  WINDIVERT_PARAM {
  WINDIVERT_PARAM_QUEUE_LENGTH = 0 , WINDIVERT_PARAM_QUEUE_TIME = 1 , WINDIVERT_PARAM_QUEUE_SIZE = 2 , WINDIVERT_PARAM_VERSION_MAJOR = 3 ,
  WINDIVERT_PARAM_VERSION_MINOR = 4
}
 
enum  WINDIVERT_SHUTDOWN { WINDIVERT_SHUTDOWN_RECV = 0x1 , WINDIVERT_SHUTDOWN_SEND = 0x2 , WINDIVERT_SHUTDOWN_BOTH = 0x3 }
 

Functions

WINDIVERTEXPORT HANDLE WinDivertOpen (__in const char *filter, __in WINDIVERT_LAYER layer, __in INT16 priority, __in UINT64 flags)
 
WINDIVERTEXPORT BOOL WinDivertRecv (__in HANDLE handle, __out_opt VOID *pPacket, __in UINT packetLen, __out_opt UINT *pRecvLen, __out_opt WINDIVERT_ADDRESS *pAddr)
 
WINDIVERTEXPORT BOOL WinDivertRecvEx (__in HANDLE handle, __out_opt VOID *pPacket, __in UINT packetLen, __out_opt UINT *pRecvLen, __in UINT64 flags, __out WINDIVERT_ADDRESS *pAddr, __inout_opt UINT *pAddrLen, __inout_opt LPOVERLAPPED lpOverlapped)
 
WINDIVERTEXPORT BOOL WinDivertSend (__in HANDLE handle, __in const VOID *pPacket, __in UINT packetLen, __out_opt UINT *pSendLen, __in const WINDIVERT_ADDRESS *pAddr)
 
WINDIVERTEXPORT BOOL WinDivertSendEx (__in HANDLE handle, __in const VOID *pPacket, __in UINT packetLen, __out_opt UINT *pSendLen, __in UINT64 flags, __in const WINDIVERT_ADDRESS *pAddr, __in UINT addrLen, __inout_opt LPOVERLAPPED lpOverlapped)
 
WINDIVERTEXPORT BOOL WinDivertShutdown (__in HANDLE handle, __in WINDIVERT_SHUTDOWN how)
 
WINDIVERTEXPORT BOOL WinDivertClose (__in HANDLE handle)
 
WINDIVERTEXPORT BOOL WinDivertSetParam (__in HANDLE handle, __in WINDIVERT_PARAM param, __in UINT64 value)
 
WINDIVERTEXPORT BOOL WinDivertGetParam (__in HANDLE handle, __in WINDIVERT_PARAM param, __out UINT64 *pValue)
 
WINDIVERTEXPORT UINT64 WinDivertHelperHashPacket (__in const VOID *pPacket, __in UINT packetLen, __in UINT64 seed)
 
WINDIVERTEXPORT BOOL WinDivertHelperParsePacket (__in const VOID *pPacket, __in UINT packetLen, __out_opt PWINDIVERT_IPHDR *ppIpHdr, __out_opt PWINDIVERT_IPV6HDR *ppIpv6Hdr, __out_opt UINT8 *pProtocol, __out_opt PWINDIVERT_ICMPHDR *ppIcmpHdr, __out_opt PWINDIVERT_ICMPV6HDR *ppIcmpv6Hdr, __out_opt PWINDIVERT_TCPHDR *ppTcpHdr, __out_opt PWINDIVERT_UDPHDR *ppUdpHdr, __out_opt PVOID *ppData, __out_opt UINT *pDataLen, __out_opt PVOID *ppNext, __out_opt UINT *pNextLen)
 
WINDIVERTEXPORT BOOL WinDivertHelperParseIPv4Address (__in const char *addrStr, __out_opt UINT32 *pAddr)
 
WINDIVERTEXPORT BOOL WinDivertHelperParseIPv6Address (__in const char *addrStr, __out_opt UINT32 *pAddr)
 
WINDIVERTEXPORT BOOL WinDivertHelperFormatIPv4Address (__in UINT32 addr, __out char *buffer, __in UINT bufLen)
 
WINDIVERTEXPORT BOOL WinDivertHelperFormatIPv6Address (__in const UINT32 *pAddr, __out char *buffer, __in UINT bufLen)
 
WINDIVERTEXPORT BOOL WinDivertHelperCalcChecksums (__inout VOID *pPacket, __in UINT packetLen, __out_opt WINDIVERT_ADDRESS *pAddr, __in UINT64 flags)
 
WINDIVERTEXPORT BOOL WinDivertHelperDecrementTTL (__inout VOID *pPacket, __in UINT packetLen)
 
WINDIVERTEXPORT BOOL WinDivertHelperCompileFilter (__in const char *filter, __in WINDIVERT_LAYER layer, __out_opt char *object, __in UINT objLen, __out_opt const char **errorStr, __out_opt UINT *errorPos)
 
WINDIVERTEXPORT BOOL WinDivertHelperEvalFilter (__in const char *filter, __in const VOID *pPacket, __in UINT packetLen, __in const WINDIVERT_ADDRESS *pAddr)
 
WINDIVERTEXPORT BOOL WinDivertHelperFormatFilter (__in const char *filter, __in WINDIVERT_LAYER layer, __out char *buffer, __in UINT bufLen)
 
WINDIVERTEXPORT UINT16 WinDivertHelperNtohs (__in UINT16 x)
 
WINDIVERTEXPORT UINT16 WinDivertHelperHtons (__in UINT16 x)
 
WINDIVERTEXPORT UINT32 WinDivertHelperNtohl (__in UINT32 x)
 
WINDIVERTEXPORT UINT32 WinDivertHelperHtonl (__in UINT32 x)
 
WINDIVERTEXPORT UINT64 WinDivertHelperNtohll (__in UINT64 x)
 
WINDIVERTEXPORT UINT64 WinDivertHelperHtonll (__in UINT64 x)
 
WINDIVERTEXPORT void WinDivertHelperNtohIpv6Address (__in const UINT *inAddr, __out UINT *outAddr)
 
WINDIVERTEXPORT void WinDivertHelperHtonIpv6Address (__in const UINT *inAddr, __out UINT *outAddr)
 

Macro Definition Documentation

◆ WINDIVERT_BATCH_MAX

#define WINDIVERT_BATCH_MAX   0xFF /* 255 */

Definition at line 317 of file windivert.h.

◆ WINDIVERT_FLAG_DROP

#define WINDIVERT_FLAG_DROP   0x0002

Definition at line 184 of file windivert.h.

◆ WINDIVERT_FLAG_NO_INSTALL

#define WINDIVERT_FLAG_NO_INSTALL   0x0010

Definition at line 189 of file windivert.h.

◆ WINDIVERT_FLAG_READ_ONLY

#define WINDIVERT_FLAG_READ_ONLY   WINDIVERT_FLAG_RECV_ONLY

Definition at line 186 of file windivert.h.

◆ WINDIVERT_FLAG_RECV_ONLY

#define WINDIVERT_FLAG_RECV_ONLY   0x0004

Definition at line 185 of file windivert.h.

◆ WINDIVERT_FLAG_SEND_ONLY

#define WINDIVERT_FLAG_SEND_ONLY   0x0008

Definition at line 187 of file windivert.h.

◆ WINDIVERT_FLAG_SNIFF

#define WINDIVERT_FLAG_SNIFF   0x0001

Definition at line 183 of file windivert.h.

◆ WINDIVERT_FLAG_WRITE_ONLY

#define WINDIVERT_FLAG_WRITE_ONLY   WINDIVERT_FLAG_SEND_ONLY

Definition at line 188 of file windivert.h.

◆ WINDIVERT_HELPER_NO_ICMP_CHECKSUM

#define WINDIVERT_HELPER_NO_ICMP_CHECKSUM   2

Definition at line 462 of file windivert.h.

◆ WINDIVERT_HELPER_NO_ICMPV6_CHECKSUM

#define WINDIVERT_HELPER_NO_ICMPV6_CHECKSUM   4

Definition at line 463 of file windivert.h.

◆ WINDIVERT_HELPER_NO_IP_CHECKSUM

#define WINDIVERT_HELPER_NO_IP_CHECKSUM   1

Definition at line 461 of file windivert.h.

◆ WINDIVERT_HELPER_NO_TCP_CHECKSUM

#define WINDIVERT_HELPER_NO_TCP_CHECKSUM   8

Definition at line 464 of file windivert.h.

◆ WINDIVERT_HELPER_NO_UDP_CHECKSUM

#define WINDIVERT_HELPER_NO_UDP_CHECKSUM   16

Definition at line 465 of file windivert.h.

◆ WINDIVERT_IPHDR_GET_DF

#define WINDIVERT_IPHDR_GET_DF (   hdr)     ((((hdr)->FragOff0) & 0x0040) != 0)

Definition at line 346 of file windivert.h.

◆ WINDIVERT_IPHDR_GET_FRAGOFF

#define WINDIVERT_IPHDR_GET_FRAGOFF (   hdr)     (((hdr)->FragOff0) & 0xFF1F)

Definition at line 342 of file windivert.h.

◆ WINDIVERT_IPHDR_GET_MF

#define WINDIVERT_IPHDR_GET_MF (   hdr)     ((((hdr)->FragOff0) & 0x0020) != 0)

Definition at line 344 of file windivert.h.

◆ WINDIVERT_IPHDR_GET_RESERVED

#define WINDIVERT_IPHDR_GET_RESERVED (   hdr)     ((((hdr)->FragOff0) & 0x0080) != 0)

Definition at line 348 of file windivert.h.

◆ WINDIVERT_IPHDR_SET_DF

#define WINDIVERT_IPHDR_SET_DF (   hdr,
  val 
)
Value:
do \
{ \
(hdr)->FragOff0 = (((hdr)->FragOff0) & 0xFFBF) | \
(((val) & 0x0001) << 6); \
} \
while (FALSE)
#define FALSE
Definition: Linux.h:76

Definition at line 365 of file windivert.h.

◆ WINDIVERT_IPHDR_SET_FRAGOFF

#define WINDIVERT_IPHDR_SET_FRAGOFF (   hdr,
  val 
)
Value:
do \
{ \
(hdr)->FragOff0 = (((hdr)->FragOff0) & 0x00E0) | \
((val) & 0xFF1F); \
} \
while (FALSE)

Definition at line 351 of file windivert.h.

◆ WINDIVERT_IPHDR_SET_MF

#define WINDIVERT_IPHDR_SET_MF (   hdr,
  val 
)
Value:
do \
{ \
(hdr)->FragOff0 = (((hdr)->FragOff0) & 0xFFDF) | \
(((val) & 0x0001) << 5); \
} \
while (FALSE)

Definition at line 358 of file windivert.h.

◆ WINDIVERT_IPHDR_SET_RESERVED

#define WINDIVERT_IPHDR_SET_RESERVED (   hdr,
  val 
)
Value:
do \
{ \
(hdr)->FragOff0 = (((hdr)->FragOff0) & 0xFF7F) | \
(((val) & 0x0001) << 7); \
} \
while (FALSE)

Definition at line 372 of file windivert.h.

◆ WINDIVERT_IPV6HDR_GET_FLOWLABEL

#define WINDIVERT_IPV6HDR_GET_FLOWLABEL (   hdr)     ((((UINT32)(hdr)->FlowLabel0) << 16) | ((UINT32)(hdr)->FlowLabel1))

Definition at line 396 of file windivert.h.

◆ WINDIVERT_IPV6HDR_GET_TRAFFICCLASS

#define WINDIVERT_IPV6HDR_GET_TRAFFICCLASS (   hdr)     ((((hdr)->TrafficClass0) << 4) | ((hdr)->TrafficClass1))

Definition at line 394 of file windivert.h.

◆ WINDIVERT_IPV6HDR_SET_FLOWLABEL

#define WINDIVERT_IPV6HDR_SET_FLOWLABEL (   hdr,
  val 
)
Value:
do \
{ \
(hdr)->FlowLabel0 = (UINT8)((val) >> 16); \
(hdr)->FlowLabel1 = (UINT16)(val); \
} \
while (FALSE)
#define UINT16
Definition: Linux.h:33
#define UINT8
Definition: Linux.h:31

Definition at line 406 of file windivert.h.

◆ WINDIVERT_IPV6HDR_SET_TRAFFICCLASS

#define WINDIVERT_IPV6HDR_SET_TRAFFICCLASS (   hdr,
  val 
)
Value:
do \
{ \
(hdr)->TrafficClass0 = ((UINT8)(val) >> 4); \
(hdr)->TrafficClass1 = (UINT8)(val); \
} \
while (FALSE)

Definition at line 399 of file windivert.h.

◆ WINDIVERT_MTU_MAX

#define WINDIVERT_MTU_MAX   (40 + 0xFFFF)

Definition at line 318 of file windivert.h.

◆ WINDIVERT_PARAM_MAX

#define WINDIVERT_PARAM_MAX   WINDIVERT_PARAM_VERSION_MINOR

Definition at line 202 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_LENGTH_DEFAULT

#define WINDIVERT_PARAM_QUEUE_LENGTH_DEFAULT   4096

Definition at line 308 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_LENGTH_MAX

#define WINDIVERT_PARAM_QUEUE_LENGTH_MAX   16384

Definition at line 310 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_LENGTH_MIN

#define WINDIVERT_PARAM_QUEUE_LENGTH_MIN   32

Definition at line 309 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_SIZE_DEFAULT

#define WINDIVERT_PARAM_QUEUE_SIZE_DEFAULT   4194304 /* 4MB */

Definition at line 314 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_SIZE_MAX

#define WINDIVERT_PARAM_QUEUE_SIZE_MAX   33554432 /* 32MB */

Definition at line 316 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_SIZE_MIN

#define WINDIVERT_PARAM_QUEUE_SIZE_MIN   65535 /* 64KB */

Definition at line 315 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_TIME_DEFAULT

#define WINDIVERT_PARAM_QUEUE_TIME_DEFAULT   2000 /* 2s */

Definition at line 311 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_TIME_MAX

#define WINDIVERT_PARAM_QUEUE_TIME_MAX   16000 /* 16s */

Definition at line 313 of file windivert.h.

◆ WINDIVERT_PARAM_QUEUE_TIME_MIN

#define WINDIVERT_PARAM_QUEUE_TIME_MIN   100 /* 100ms */

Definition at line 312 of file windivert.h.

◆ WINDIVERT_PRIORITY_HIGHEST

#define WINDIVERT_PRIORITY_HIGHEST   30000

Definition at line 306 of file windivert.h.

◆ WINDIVERT_PRIORITY_LOWEST

#define WINDIVERT_PRIORITY_LOWEST   (-WINDIVERT_PRIORITY_HIGHEST)

Definition at line 307 of file windivert.h.

◆ WINDIVERT_SHUTDOWN_MAX

#define WINDIVERT_SHUTDOWN_MAX   WINDIVERT_SHUTDOWN_BOTH

Definition at line 213 of file windivert.h.

◆ WINDIVERTEXPORT

#define WINDIVERTEXPORT   __declspec(dllimport)

Definition at line 43 of file windivert.h.

Typedef Documentation

◆ PWINDIVERT_ADDRESS

◆ PWINDIVERT_DATA_FLOW

◆ PWINDIVERT_DATA_NETWORK

◆ PWINDIVERT_DATA_REFLECT

◆ PWINDIVERT_DATA_SOCKET

◆ PWINDIVERT_EVENT

◆ PWINDIVERT_ICMPHDR

◆ PWINDIVERT_ICMPV6HDR

◆ PWINDIVERT_IPHDR

◆ PWINDIVERT_IPV6HDR

◆ PWINDIVERT_LAYER

◆ PWINDIVERT_PARAM

◆ PWINDIVERT_SHUTDOWN

◆ PWINDIVERT_TCPHDR

◆ PWINDIVERT_UDPHDR

Enumeration Type Documentation

◆ WINDIVERT_EVENT

Enumerator
WINDIVERT_EVENT_NETWORK_PACKET 
WINDIVERT_EVENT_FLOW_ESTABLISHED 
WINDIVERT_EVENT_FLOW_DELETED 
WINDIVERT_EVENT_SOCKET_BIND 
WINDIVERT_EVENT_SOCKET_CONNECT 
WINDIVERT_EVENT_SOCKET_LISTEN 
WINDIVERT_EVENT_SOCKET_ACCEPT 
WINDIVERT_EVENT_SOCKET_CLOSE 
WINDIVERT_EVENT_REFLECT_OPEN 
WINDIVERT_EVENT_REFLECT_CLOSE 

Definition at line 165 of file windivert.h.

◆ WINDIVERT_LAYER

Enumerator
WINDIVERT_LAYER_NETWORK 
WINDIVERT_LAYER_NETWORK_FORWARD 
WINDIVERT_LAYER_FLOW 
WINDIVERT_LAYER_SOCKET 
WINDIVERT_LAYER_REFLECT 

Definition at line 75 of file windivert.h.

◆ WINDIVERT_PARAM

Enumerator
WINDIVERT_PARAM_QUEUE_LENGTH 
WINDIVERT_PARAM_QUEUE_TIME 
WINDIVERT_PARAM_QUEUE_SIZE 
WINDIVERT_PARAM_VERSION_MAJOR 
WINDIVERT_PARAM_VERSION_MINOR 

Definition at line 194 of file windivert.h.

◆ WINDIVERT_SHUTDOWN

Enumerator
WINDIVERT_SHUTDOWN_RECV 
WINDIVERT_SHUTDOWN_SEND 
WINDIVERT_SHUTDOWN_BOTH 

Definition at line 207 of file windivert.h.

Function Documentation

◆ WinDivertClose()

WINDIVERTEXPORT BOOL WinDivertClose ( __in HANDLE  handle)

◆ WinDivertGetParam()

WINDIVERTEXPORT BOOL WinDivertGetParam ( __in HANDLE  handle,
__in WINDIVERT_PARAM  param,
__out UINT64 pValue 
)

◆ WinDivertHelperCalcChecksums()

WINDIVERTEXPORT BOOL WinDivertHelperCalcChecksums ( __inout VOID *  pPacket,
__in UINT  packetLen,
__out_opt WINDIVERT_ADDRESS pAddr,
__in UINT64  flags 
)

◆ WinDivertHelperCompileFilter()

WINDIVERTEXPORT BOOL WinDivertHelperCompileFilter ( __in const char *  filter,
__in WINDIVERT_LAYER  layer,
__out_opt char *  object,
__in UINT  objLen,
__out_opt const char **  errorStr,
__out_opt UINT errorPos 
)

◆ WinDivertHelperDecrementTTL()

WINDIVERTEXPORT BOOL WinDivertHelperDecrementTTL ( __inout VOID *  pPacket,
__in UINT  packetLen 
)

◆ WinDivertHelperEvalFilter()

WINDIVERTEXPORT BOOL WinDivertHelperEvalFilter ( __in const char *  filter,
__in const VOID *  pPacket,
__in UINT  packetLen,
__in const WINDIVERT_ADDRESS pAddr 
)

◆ WinDivertHelperFormatFilter()

WINDIVERTEXPORT BOOL WinDivertHelperFormatFilter ( __in const char *  filter,
__in WINDIVERT_LAYER  layer,
__out char *  buffer,
__in UINT  bufLen 
)

◆ WinDivertHelperFormatIPv4Address()

WINDIVERTEXPORT BOOL WinDivertHelperFormatIPv4Address ( __in UINT32  addr,
__out char *  buffer,
__in UINT  bufLen 
)

◆ WinDivertHelperFormatIPv6Address()

WINDIVERTEXPORT BOOL WinDivertHelperFormatIPv6Address ( __in const UINT32 pAddr,
__out char *  buffer,
__in UINT  bufLen 
)

◆ WinDivertHelperHashPacket()

WINDIVERTEXPORT UINT64 WinDivertHelperHashPacket ( __in const VOID *  pPacket,
__in UINT  packetLen,
__in UINT64  seed 
)

◆ WinDivertHelperHtonIpv6Address()

WINDIVERTEXPORT void WinDivertHelperHtonIpv6Address ( __in const UINT inAddr,
__out UINT outAddr 
)

◆ WinDivertHelperHtonl()

WINDIVERTEXPORT UINT32 WinDivertHelperHtonl ( __in UINT32  x)

◆ WinDivertHelperHtonll()

WINDIVERTEXPORT UINT64 WinDivertHelperHtonll ( __in UINT64  x)

◆ WinDivertHelperHtons()

WINDIVERTEXPORT UINT16 WinDivertHelperHtons ( __in UINT16  x)

◆ WinDivertHelperNtohIpv6Address()

WINDIVERTEXPORT void WinDivertHelperNtohIpv6Address ( __in const UINT inAddr,
__out UINT outAddr 
)

◆ WinDivertHelperNtohl()

WINDIVERTEXPORT UINT32 WinDivertHelperNtohl ( __in UINT32  x)

◆ WinDivertHelperNtohll()

WINDIVERTEXPORT UINT64 WinDivertHelperNtohll ( __in UINT64  x)

◆ WinDivertHelperNtohs()

WINDIVERTEXPORT UINT16 WinDivertHelperNtohs ( __in UINT16  x)

◆ WinDivertHelperParseIPv4Address()

WINDIVERTEXPORT BOOL WinDivertHelperParseIPv4Address ( __in const char *  addrStr,
__out_opt UINT32 pAddr 
)

◆ WinDivertHelperParseIPv6Address()

WINDIVERTEXPORT BOOL WinDivertHelperParseIPv6Address ( __in const char *  addrStr,
__out_opt UINT32 pAddr 
)

◆ WinDivertHelperParsePacket()

WINDIVERTEXPORT BOOL WinDivertHelperParsePacket ( __in const VOID *  pPacket,
__in UINT  packetLen,
__out_opt PWINDIVERT_IPHDR ppIpHdr,
__out_opt PWINDIVERT_IPV6HDR ppIpv6Hdr,
__out_opt UINT8 pProtocol,
__out_opt PWINDIVERT_ICMPHDR ppIcmpHdr,
__out_opt PWINDIVERT_ICMPV6HDR ppIcmpv6Hdr,
__out_opt PWINDIVERT_TCPHDR ppTcpHdr,
__out_opt PWINDIVERT_UDPHDR ppUdpHdr,
__out_opt PVOID ppData,
__out_opt UINT pDataLen,
__out_opt PVOID ppNext,
__out_opt UINT pNextLen 
)

◆ WinDivertOpen()

WINDIVERTEXPORT HANDLE WinDivertOpen ( __in const char *  filter,
__in WINDIVERT_LAYER  layer,
__in INT16  priority,
__in UINT64  flags 
)

◆ WinDivertRecv()

WINDIVERTEXPORT BOOL WinDivertRecv ( __in HANDLE  handle,
__out_opt VOID *  pPacket,
__in UINT  packetLen,
__out_opt UINT pRecvLen,
__out_opt WINDIVERT_ADDRESS pAddr 
)

◆ WinDivertRecvEx()

WINDIVERTEXPORT BOOL WinDivertRecvEx ( __in HANDLE  handle,
__out_opt VOID *  pPacket,
__in UINT  packetLen,
__out_opt UINT pRecvLen,
__in UINT64  flags,
__out WINDIVERT_ADDRESS pAddr,
__inout_opt UINT pAddrLen,
__inout_opt LPOVERLAPPED  lpOverlapped 
)

◆ WinDivertSend()

WINDIVERTEXPORT BOOL WinDivertSend ( __in HANDLE  handle,
__in const VOID *  pPacket,
__in UINT  packetLen,
__out_opt UINT pSendLen,
__in const WINDIVERT_ADDRESS pAddr 
)

◆ WinDivertSendEx()

WINDIVERTEXPORT BOOL WinDivertSendEx ( __in HANDLE  handle,
__in const VOID *  pPacket,
__in UINT  packetLen,
__out_opt UINT pSendLen,
__in UINT64  flags,
__in const WINDIVERT_ADDRESS pAddr,
__in UINT  addrLen,
__inout_opt LPOVERLAPPED  lpOverlapped 
)

◆ WinDivertSetParam()

WINDIVERTEXPORT BOOL WinDivertSetParam ( __in HANDLE  handle,
__in WINDIVERT_PARAM  param,
__in UINT64  value 
)

◆ WinDivertShutdown()

WINDIVERTEXPORT BOOL WinDivertShutdown ( __in HANDLE  handle,
__in WINDIVERT_SHUTDOWN  how 
)