Sample Code
Windows Driver Samples/ Windows Filtering Platform Sample/ C++/ sys/ ClassifyFunctions_BasicStreamInjectionCallouts.h/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | //////////////////////////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2012 Microsoft Corporation. All Rights Reserved. // // Module Name: // ClassifyFunctions_BasicStreamInjectionCallouts.cpp // // Abstract: // This module contains prototypes for WFP Classify functions that inject data back into TCP's // stream using the clone / block / inject method. // // Naming Convention: // // <Module><Scenario> // // i.e. // // ClassifyBasicStreamInjection // // <Module> // Classify - Function is an FWPS_CALLOUT_CLASSIFY_FN // <Scenario> // BasicStreamInjection - Function demonstates use clone / block / inject model // // <Action><Scenario><Modifier> // // i.e. // // TriggerBasicStreamInjectionOutOfBand // // <Action> // { // - // Trigger - Initiates the desired scenario // Perform - Executes the desired scenario // } // <Scenario> // BasicStreamInjection - Function demonstates use clone / block / inject model // <Modifier> // WorkItemRoutine - WorkItem Routine for Out of Band Injection. // // Author: // Dusty Harper (DHarper) // // Revision History: // // [ Month ][Day] [Year] - [Revision]-[ Comments ] // May 01, 2010 - 1.0 - Creation // //////////////////////////////////////////////////////////////////////////////////////////////////// #ifndef CLASSIFY_BASIC_STREAM_INJECTION_H #define CLASSIFY_BASIC_STREAM_INJECTION_H typedef struct BASIC_STREAM_INJECTION_LIST_ITEM_ { LIST_ENTRY entry; CLASSIFY_DATA* pClassifyData; INJECTION_DATA* pInjectionData; }BASIC_STREAM_INJECTION_LIST_ITEM, *PBASIC_STREAM_INJECTION_LIST_ITEM; _IRQL_requires_(DISPATCH_LEVEL) _IRQL_requires_same_ _Function_class_(KDEFERRED_ROUTINE) VOID BasicStreamInjectionDeferredProcedureCall(_In_ KDPC* pDPC, _In_opt_ PVOID pContext, _In_opt_ PVOID pArg1, _In_opt_ PVOID pArg2); #if(NTDDI_VERSION >= NTDDI_WIN7) _IRQL_requires_min_(PASSIVE_LEVEL) _IRQL_requires_max_(DISPATCH_LEVEL) _IRQL_requires_same_ VOID ClassifyBasicStreamInjection(_In_ const FWPS_INCOMING_VALUES* pClassifyValues, _In_ const FWPS_INCOMING_METADATA_VALUES* pMetadata, _Inout_opt_ VOID * pStreamCalloutIOPacket, _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 ClassifyBasicStreamInjection(_In_ const FWPS_INCOMING_VALUES* pClassifyValues, _In_ const FWPS_INCOMING_METADATA_VALUES* pMetadata, _Inout_opt_ VOID * pStreamCalloutIOPacket, _In_ const FWPS_FILTER* pFilter, _In_ UINT64 flowContext, _Inout_ FWPS_CLASSIFY_OUT* pClassifyOut); #endif /// (NTDDI_VERSION >= NTDDI_WIN7) #endif /// CLASSIFY_BASIC_STREAM_INJECTION_H |
Our Services
-
What our customers say about us?
Read our customer testimonials to find out why our clients keep returning for their projects.
View Testimonials