diff options
Diffstat (limited to 'network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketInjectionCallouts.h')
| -rw-r--r-- | network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketInjectionCallouts.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketInjectionCallouts.h b/network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketInjectionCallouts.h new file mode 100644 index 00000000..103a0c07 --- /dev/null +++ b/network/trans/WFPSampler/sys/ClassifyFunctions_BasicPacketInjectionCallouts.h @@ -0,0 +1,75 @@ +//////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2014 Microsoft Corporation. All Rights Reserved. +// +// Module Name: +// ClassifyFunctions_BasicPacketInjectionCallouts.h +// +// Abstract: +// This module contains prototypes for WFP Classify functions that inject packets back into the +// data path using the clone / block / inject method. +// +// Author: +// Dusty Harper (DHarper) +// +// Revision History: +// +// [ Month ][Day] [Year] - [Revision]-[ Comments ] +// May 01, 2010 - 1.0 - Creation +// December 13, 2013 - 1.1 - Enhance function declaration for IntelliSense +// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#ifndef CLASSIFY_BASIC_PACKET_INJECTION_H +#define CLASSIFY_BASIC_PACKET_INJECTION_H + +#if DBG + +extern INJECTION_COUNTERS g_bpiTotalClassifies; +extern INJECTION_COUNTERS g_bpiTotalBlockedAndAbsorbed; +extern INJECTION_COUNTERS g_bpiTotalPermitted; +extern INJECTION_COUNTERS g_bpiTotalSuccessfulInjectionCalls; +extern INJECTION_COUNTERS g_bpiTotalFailedInjectionCalls; +extern INJECTION_COUNTERS g_bpiOutstandingNBLClones; + +VOID BasicPacketInjectionCountersIncrement(_In_ HANDLE injectionHandle, + _Inout_ INJECTION_COUNTERS* pCounters); + +#endif /// DBG + +_IRQL_requires_(DISPATCH_LEVEL) +_IRQL_requires_same_ +_Function_class_(KDEFERRED_ROUTINE) +VOID BasicPacketInjectionDeferredProcedureCall(_In_ KDPC* pDPC, + _In_opt_ PVOID pContext, + _In_opt_ PVOID pDPCData, + _In_opt_ PVOID pArg2); + +#if(NTDDI_VERSION >= NTDDI_WIN7) + +_IRQL_requires_min_(PASSIVE_LEVEL) +_IRQL_requires_max_(DISPATCH_LEVEL) +_IRQL_requires_same_ +VOID NTAPI ClassifyBasicPacketInjection(_In_ const FWPS_INCOMING_VALUES* pClassifyValues, + _In_ const FWPS_INCOMING_METADATA_VALUES* pMetadata, + _Inout_opt_ VOID* pLayerData, + _In_opt_ const VOID* pClassifyContext, + _In_ const FWPS_FILTER* pFilter, + _In_ UINT64 flowContext, + _Inout_ FWPS_CLASSIFY_OUT* pClassifyOut); + +#else + +_IRQL_requires_min_(PASSIVE_LEVEL) +_IRQL_requires_max_(DISPATCH_LEVEL) +_IRQL_requires_same_ +VOID NTAPI ClassifyBasicPacketInjection(_In_ const FWPS_INCOMING_VALUES* pClassifyValues, + _In_ const FWPS_INCOMING_METADATA_VALUES* pMetadata, + _Inout_opt_ VOID* pLayerData, + _In_ const FWPS_FILTER* pFilter, + _In_ UINT64 flowContext, + _Inout_ FWPS_CLASSIFY_OUT* pClassifyOut); + +#endif /// (NTDDI_VERSION >= NTDDI_WIN7) + +#endif /// CLASSIFY_BASIC_PACKET_INJECTION_H |
