summaryrefslogtreecommitdiff
path: root/network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.h
diff options
context:
space:
mode:
Diffstat (limited to 'network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.h')
-rw-r--r--network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.h b/network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.h
new file mode 100644
index 00000000..bcc9432e
--- /dev/null
+++ b/network/trans/WFPSampler/sys/CompletionFunctions_BasicStreamInjectionCallouts.h
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2014 Microsoft Corporation. All Rights Reserved.
+//
+// Module Name:
+// CompletionFunctions_BasicStreamInjectionCallouts.h
+//
+// Abstract:
+// This module contains WFP Completion functions for injecting packets back into the stream
+// 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_STREAM_INJECTION_H
+#define COMPLETION_BASIC_STREAM_INJECTION_H
+
+typedef struct BASIC_STREAM_INJECTION_COMPLETION_DATA_
+{
+ KSPIN_LOCK spinLock;
+ UINT32 refCount;
+ BOOLEAN performedInline;
+ CLASSIFY_DATA* pClassifyData;
+ INJECTION_DATA* pInjectionData;
+}BASIC_STREAM_INJECTION_COMPLETION_DATA, *PBASIC_STREAM_INJECTION_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 BasicStreamInjectionCompletionDataDestroy(_Inout_ BASIC_STREAM_INJECTION_COMPLETION_DATA** ppCompletionData,
+ _In_ BOOLEAN override = FALSE);
+_IRQL_requires_min_(PASSIVE_LEVEL)
+_IRQL_requires_max_(DISPATCH_LEVEL)
+_IRQL_requires_same_
+VOID NTAPI CompleteBasicStreamInjection(_In_ VOID* pContext,
+ _Inout_ NET_BUFFER_LIST* pNetBufferList,
+ _In_ BOOLEAN dispatchLevel);
+
+#endif /// COMPLETION_BASIC_STREAM_INJECTION_H \ No newline at end of file