Add Loopback and Timestamp fields to addresses.

- Loopback=1 for loopback packets, 0 otherwise.
- Timestamp is the time when packet captured.
This commit is contained in:
basil00
2017-11-05 12:12:19 +08:00
parent 60c3a26e1c
commit bbf6a34aa6
8 changed files with 100 additions and 52 deletions
+5 -2
View File
@@ -1,6 +1,6 @@
/*
* windivert.h
* (C) 2016, all rights reserved,
* (C) 2017, all rights reserved,
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@@ -57,9 +57,12 @@ extern "C" {
*/
typedef struct
{
INT64 Timestamp; /* Packet's timestamp. */
UINT32 IfIdx; /* Packet's interface index. */
UINT32 SubIfIdx; /* Packet's sub-interface index. */
UINT8 Direction; /* Packet's direction. */
UINT8 Direction:1; /* Packet's direction. */
UINT8 Loopback:1; /* Packet is loopback? */
UINT8 Reserved:6;
} WINDIVERT_ADDRESS, *PWINDIVERT_ADDRESS;
#define WINDIVERT_DIRECTION_OUTBOUND 0
+2 -1
View File
@@ -104,8 +104,9 @@
#define WINDIVERT_FILTER_FIELD_UDP_LENGTH 55
#define WINDIVERT_FILTER_FIELD_UDP_CHECKSUM 56
#define WINDIVERT_FILTER_FIELD_UDP_PAYLOADLENGTH 57
#define WINDIVERT_FILTER_FIELD_LOOPBACK 58
#define WINDIVERT_FILTER_FIELD_MAX \
WINDIVERT_FILTER_FIELD_UDP_PAYLOADLENGTH
WINDIVERT_FILTER_FIELD_LOOPBACK
#define WINDIVERT_FILTER_TEST_EQ 0
#define WINDIVERT_FILTER_TEST_NEQ 1