diff options
Diffstat (limited to 'network/trans/WFPSampler/sys/CompletionFunctions_BasicPacketModificationCallouts.h')
| -rw-r--r-- | network/trans/WFPSampler/sys/CompletionFunctions_BasicPacketModificationCallouts.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/network/trans/WFPSampler/sys/CompletionFunctions_BasicPacketModificationCallouts.h b/network/trans/WFPSampler/sys/CompletionFunctions_BasicPacketModificationCallouts.h new file mode 100644 index 00000000..4d497a16 --- /dev/null +++ b/network/trans/WFPSampler/sys/CompletionFunctions_BasicPacketModificationCallouts.h @@ -0,0 +1,52 @@ +//////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2014 Microsoft Corporation. All Rights Reserved. +// +// Module Name: +// CompletionFunctions_BasicPacketModificationCallouts.cpp +// +// Abstract: +// This module contains prototypes for WFP Completion functions for injecting modified 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 COMPLETION_BASIC_PACKET_MODIFICATION_H +#define COMPLETION_BASIC_PACKET_MODIFICATION_H + +typedef struct BASIC_PACKET_MODIFICATION_COMPLETION_DATA_ +{ + KSPIN_LOCK spinLock; + INT32 refCount; + BOOLEAN performedInline; + CLASSIFY_DATA* pClassifyData; + INJECTION_DATA* pInjectionData; + FWPS_TRANSPORT_SEND_PARAMS* pSendParams; +}BASIC_PACKET_MODIFICATION_COMPLETION_DATA, *PBASIC_PACKET_MODIFICATION_COMPLETION_DATA; + +_At_(*ppCompletionData, _Pre_ _Notnull_) +_At_(*ppCompletionData, _Post_ _Null_ __drv_freesMem(Pool)) +_IRQL_requires_min_(PASSIVE_LEVEL) +_IRQL_requires_max_(DISPATCH_LEVEL) +_IRQL_requires_same_ +_Success_(*ppCompletionData == 0) +VOID BasicPacketModificationCompletionDataDestroy(_Inout_ BASIC_PACKET_MODIFICATION_COMPLETION_DATA** ppCompletionData, + _In_ BOOLEAN override = FALSE); + +_IRQL_requires_min_(PASSIVE_LEVEL) +_IRQL_requires_max_(DISPATCH_LEVEL) +_IRQL_requires_same_ +VOID NTAPI CompleteBasicPacketModification(_In_ VOID* pContext, + _Inout_ NET_BUFFER_LIST* pNetBufferList, + _In_ BOOLEAN dispatchLevel); + +#endif /// COMPLETION_BASIC_PACKET_MODIFICATION_H
\ No newline at end of file |
