27#define EXTERNCDECL EXTERN_C
38#define PFAPIENTRY EXTERNCDECL DWORD PFEXPORT WINAPI
40#define ERROR_BASE 23000
41#define PFERROR_NO_PF_INTERFACE (ERROR_BASE + 0)
42#define PFERROR_NO_FILTERS_GIVEN (ERROR_BASE + 1)
43#define PFERROR_BUFFER_TOO_SMALL (ERROR_BASE + 2)
44#define ERROR_IPV6_NOT_IMPLEMENTED (ERROR_BASE + 3)
46#define FD_FLAGS_NOSYN 0x1
47#define FD_FLAGS_ALLFLAGS FD_FLAGS_NOSYN
49#define FILTER_PROTO(ProtoId) MAKELONG(MAKEWORD((ProtoId), 0x00), 0x00000)
50#define FILTER_PROTO_ANY FILTER_PROTO(0x00)
51#define FILTER_PROTO_ICMP FILTER_PROTO(0x01)
52#define FILTER_PROTO_TCP FILTER_PROTO(0x06)
53#define FILTER_PROTO_UDP FILTER_PROTO(0x11)
55#define FILTER_TCPUDP_PORT_ANY ((WORD)0x0000)
56#define FILTER_ICMP_TYPE_ANY ((BYTE)0xff)
57#define FILTER_ICMP_CODE_ANY ((BYTE)0xff)
59#define LB_SRC_ADDR_USE_SRCADDR_FLAG 0x00000001
60#define LB_SRC_ADDR_USE_DSTADDR_FLAG 0x00000002
61#define LB_DST_ADDR_USE_SRCADDR_FLAG 0x00000004
62#define LB_DST_ADDR_USE_DSTADDR_FLAG 0x00000008
63#define LB_SRC_MASK_LATE_FLAG 0x00000010
64#define LB_DST_MASK_LATE_FLAG 0x00000020
125#define FILTERSIZE (sizeof(PF_FILTER_DESCRIPTOR) - (DWORD)FIELD_OFFSET(PF_FILTER_DESCRIPTOR, SrcAddr))
185 PBYTE LinkIPAddress);
209 BOOL fResetCounters);
struct _PF_LATEBIND_INFO * PPF_LATEBIND_INFO
enum _PfAddresType PFADDRESSTYPE
enum _PfForwardAction * PPFFORWARD_ACTION
struct _PF_FILTER_STATS * PPF_FILTER_STATS
enum _PfAddresType * PPFADDRESSTYPE
PFAPIENTRY PfAddGlobalFilterToInterface(INTERFACE_HANDLE pInterface, GLOBAL_FILTER gfFilter)
PFAPIENTRY PfRemoveFilterHandles(INTERFACE_HANDLE pInterface, DWORD cFilters, PFILTER_HANDLE pvHandles)
struct _PF_FILTER_STATS PF_FILTER_STATS
struct _PF_FILTER_DESCRIPTOR * PPF_FILTER_DESCRIPTOR
enum _GlobalFilter * PGLOBAL_FILTER
PFAPIENTRY PfRemoveGlobalFilterFromInterface(INTERFACE_HANDLE pInterface, GLOBAL_FILTER gfFilter)
struct _PF_FILTER_DESCRIPTOR PF_FILTER_DESCRIPTOR
PFAPIENTRY PfDeleteInterface(INTERFACE_HANDLE pInterface)
enum _PfFrameType PFFRAMETYPE
PFAPIENTRY PfTestPacket(INTERFACE_HANDLE pInInterface OPTIONAL, INTERFACE_HANDLE pOutInterface OPTIONAL, DWORD cBytes, PBYTE pbPacket, PPFFORWARD_ACTION ppAction)
PFAPIENTRY PfGetInterfaceStatistics(INTERFACE_HANDLE pInterface, PPF_INTERFACE_STATS ppfStats, PDWORD pdwBufferSize, BOOL fResetCounters)
enum _PfFrameType * PPFFRAMETYPE
PVOID * PINTERFACE_HANDLE
PFAPIENTRY PfBindInterfaceToIndex(INTERFACE_HANDLE pInterface, DWORD dwIndex, PFADDRESSTYPE pfatLinkType, PBYTE LinkIPAddress)
struct _PF_INTERFACE_STATS * PPF_INTERFACE_STATS
PFAPIENTRY PfCreateInterface(DWORD dwName, PFFORWARD_ACTION inAction, PFFORWARD_ACTION outAction, BOOL bUseLog, BOOL bMustBeUnique, INTERFACE_HANDLE *ppInterface)
PFAPIENTRY PfDeleteLog(VOID)
struct _PF_LATEBIND_INFO PF_LATEBIND_INFO
PFAPIENTRY PfMakeLog(HANDLE hEvent)
struct _pfLogFrame PFLOGFRAME
enum _PfForwardAction PFFORWARD_ACTION
enum _GlobalFilter GLOBAL_FILTER
PFAPIENTRY PfAddFiltersToInterface(INTERFACE_HANDLE ih, DWORD cInFilters, PPF_FILTER_DESCRIPTOR pfiltIn, DWORD cOutFilters, PPF_FILTER_DESCRIPTOR pfiltOut, PFILTER_HANDLE pfHandle)
PFAPIENTRY PfBindInterfaceToIPAddress(INTERFACE_HANDLE pInterface, PFADDRESSTYPE pfatType, PBYTE IPAddress)
PFAPIENTRY PfRebindFilters(INTERFACE_HANDLE pInterface, PPF_LATEBIND_INFO pLateBindInfo)
PFAPIENTRY PfRemoveFiltersFromInterface(INTERFACE_HANDLE ih, DWORD cInFilters, PPF_FILTER_DESCRIPTOR pfiltIn, DWORD cOutFilters, PPF_FILTER_DESCRIPTOR pfiltOut)
PFAPIENTRY PfUnBindInterface(INTERFACE_HANDLE pInterface)
struct _pfLogFrame * PPFLOGFRAME
struct _PF_INTERFACE_STATS PF_INTERFACE_STATS
PFAPIENTRY PfSetLogBuffer(PBYTE pbBuffer, DWORD dwSize, DWORD dwThreshold, DWORD dwEntries, PDWORD pdwLoggedEntries, PDWORD pdwLostEntries, PDWORD pdwSizeUsed)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
PULONG MinorVersion OPTIONAL
DWORD dwNumPacketsFiltered
PF_FILTER_DESCRIPTOR info
LARGE_INTEGER liTotalLogged
PFFORWARD_ACTION eaInAction
PF_FILTER_STATS FilterInfo[1]
PFFORWARD_ACTION eaOutAction
WORD wSizeOfAdditionalData
PFFRAMETYPE pfeTypeOfFrame