diff options
| author | J M Rossy <[email protected]> | 2015-07-29 15:40:09 -0700 |
|---|---|---|
| committer | J M Rossy <[email protected]> | 2015-07-29 16:34:40 -0700 |
| commit | 5d61a4a79a1e96dc5d9af1e5e712c84507307544 (patch) | |
| tree | 49ed270893578cd18758b74ffcca16dc7ab948d6 /network/trans/WFPSampler/sys/HelperFunctions_ExposedCallouts.h | |
| parent | 5d41613e26e147d2300c786bb2b34cb4b4067a25 (diff) | |
Samples update for public Windows 10 release
Fix #2 Enabling WPP Recorder in Sensors Samples causes errors
Fix #4 Add back fixed KMDOD sample
Add new BarcodeScanner sample in pos folder
Add new MagneticStripeReader sample in pos folder
Add new SynpaticsTouch sample in input folder
Add new Power Engine Plugin sample in pofx folder
Add new DeviceMft sample in avstream folder
Add new AvsCamera sample in root
Add new SimBatt sample in root
Add other pre-existing samples not yet released for Win10
Diffstat (limited to 'network/trans/WFPSampler/sys/HelperFunctions_ExposedCallouts.h')
| -rw-r--r-- | network/trans/WFPSampler/sys/HelperFunctions_ExposedCallouts.h | 650 |
1 files changed, 650 insertions, 0 deletions
diff --git a/network/trans/WFPSampler/sys/HelperFunctions_ExposedCallouts.h b/network/trans/WFPSampler/sys/HelperFunctions_ExposedCallouts.h new file mode 100644 index 00000000..eb2e4f03 --- /dev/null +++ b/network/trans/WFPSampler/sys/HelperFunctions_ExposedCallouts.h @@ -0,0 +1,650 @@ +//////////////////////////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2014 Microsoft Corporation. All Rights Reserved. +// +// Module Name: +// HelperFunctions_ExposedCallouts.h +// +// Abstract: +// +// Author: +// Dusty Harper (DHarper) +// +// Revision History: +// +// [ Month ][Day] [Year] - [Revision]-[ Comments ] +// May 01, 2010 - 1.0 - Creation +// December 13, 2013 - 1.1 - Add support for ADVANCED_PACKET_INJECTION, +// FLOW_ASSOCIATION, and PEND_ENDPOINT_CLOSURE callouts +// +//////////////////////////////////////////////////////////////////////////////////////////////////// + +#if DBG + +typedef struct INJECTION_COUNTERS_ +{ + INT64 inboundNetwork_IPv4; + INT64 inboundNetwork_IPv6; + INT64 outboundNetwork_IPv4; + INT64 outboundNetwork_IPv6; + INT64 inboundForward_IPv4; + INT64 inboundForward_IPv6; + INT64 outboundForward_IPv4; + INT64 outboundForward_IPv6; + INT64 inboundTransport_IPv4; + INT64 inboundTransport_IPv6; + INT64 outboundTransport_IPv4; + INT64 outboundTransport_IPv6; + INT64 inboundStream_IPv4; + INT64 inboundStream_IPv6; + INT64 outboundStream_IPv4; + INT64 outboundStream_IPv6; + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + INT64 inboundMAC_IPv4; + INT64 inboundMAC_IPv6; + INT64 inboundMAC_Unknown; + INT64 outboundMAC_IPv4; + INT64 outboundMAC_IPv6; + INT64 outboundMAC_Unknown; + INT64 ingressVSwitch_IPv4; + INT64 ingressVSwitch_IPv6; + INT64 ingressVSwitch_Unknown; + INT64 egressVSwitch_IPv4; + INT64 egressVSwitch_IPv6; + INT64 egressVSwitch_Unknown; + +#endif /// (NTDDI_VERSION >= NTDDI_WIN8) + +}INJECTION_COUNTERS, *PINJECTION_COUNTERS; + +#endif /// DBG + +static const GUID* const ppAdvancedPacketInjection[] = {&WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_ALE_FLOW_ESTABLISHED_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_ADVANCED_PACKET_INJECTION_AT_EGRESS_VSWITCH_ETHERNET, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppBasicActionBlock[] = {&WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_STREAM_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_STREAM_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_RESOURCE_ASSIGNMENT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_RESOURCE_ASSIGNMENT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_AUTH_LISTEN_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_AUTH_LISTEN_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_FLOW_ESTABLISHED_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_RESOURCE_RELEASE_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_RESOURCE_RELEASE_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_ENDPOINT_CLOSURE_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_ENDPOINT_CLOSURE_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_CONNECT_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_CONNECT_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_BIND_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_ALE_BIND_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_EGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_INGRESS_VSWITCH_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_EGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_BLOCK_AT_EGRESS_VSWITCH_TRANSPORT_V6, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppBasicActionContinue[] = {&WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_STREAM_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_STREAM_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_RESOURCE_ASSIGNMENT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_RESOURCE_ASSIGNMENT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_AUTH_LISTEN_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_AUTH_LISTEN_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_FLOW_ESTABLISHED_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_RESOURCE_RELEASE_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_RESOURCE_RELEASE_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_ENDPOINT_CLOSURE_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_ENDPOINT_CLOSURE_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_CONNECT_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_CONNECT_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_BIND_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_ALE_BIND_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_EGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_INGRESS_VSWITCH_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_EGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_CONTINUE_AT_EGRESS_VSWITCH_TRANSPORT_V6, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppBasicActionPermit[] = {&WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_STREAM_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_STREAM_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_RESOURCE_ASSIGNMENT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_RESOURCE_ASSIGNMENT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_AUTH_LISTEN_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_AUTH_LISTEN_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_FLOW_ESTABLISHED_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_RESOURCE_RELEASE_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_RESOURCE_RELEASE_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_ENDPOINT_CLOSURE_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_ENDPOINT_CLOSURE_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_CONNECT_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_CONNECT_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_BIND_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_ALE_BIND_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_EGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_INGRESS_VSWITCH_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_EGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_PERMIT_AT_EGRESS_VSWITCH_TRANSPORT_V6, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppBasicActionRandom[] = {&WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_STREAM_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_STREAM_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_RESOURCE_ASSIGNMENT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_RESOURCE_ASSIGNMENT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_AUTH_LISTEN_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_AUTH_LISTEN_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_FLOW_ESTABLISHED_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_RESOURCE_RELEASE_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_RESOURCE_RELEASE_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_ENDPOINT_CLOSURE_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_ENDPOINT_CLOSURE_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_CONNECT_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_CONNECT_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_BIND_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_ALE_BIND_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_EGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_INGRESS_VSWITCH_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_EGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_ACTION_RANDOM_AT_EGRESS_VSWITCH_TRANSPORT_V6, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppBasicPacketExamination[] = {&WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_IPPACKET_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_IPPACKET_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_IPPACKET_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_IPPACKET_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_IPFORWARD_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_IPFORWARD_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_TRANSPORT_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_TRANSPORT_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_TRANSPORT_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_TRANSPORT_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_STREAM_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_STREAM_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_STREAM_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_STREAM_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_DATAGRAM_DATA_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_DATAGRAM_DATA_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_ICMP_ERROR_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_ICMP_ERROR_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_ICMP_ERROR_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_ICMP_ERROR_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_RESOURCE_ASSIGNMENT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_RESOURCE_ASSIGNMENT_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_RESOURCE_ASSIGNMENT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_RESOURCE_ASSIGNMENT_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_LISTEN_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_LISTEN_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_LISTEN_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_LISTEN_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_RECV_ACCEPT_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_RECV_ACCEPT_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_CONNECT_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_AUTH_CONNECT_V6_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_FLOW_ESTABLISHED_V4_DISCARD, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_FLOW_ESTABLISHED_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_FLOW_ESTABLISHED_V6_DISCARD, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_RESOURCE_RELEASE_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_RESOURCE_RELEASE_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_ENDPOINT_CLOSURE_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_ENDPOINT_CLOSURE_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_CONNECT_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_CONNECT_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_BIND_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_ALE_BIND_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_EGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_INGRESS_VSWITCH_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_EGRESS_VSWITCH_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_EXAMINATION_AT_EGRESS_VSWITCH_TRANSPORT_V6, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppBasicPacketInjection[] = {&WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_ALE_FLOW_ESTABLISHED_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_INJECTION_AT_EGRESS_VSWITCH_ETHERNET, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppBasicPacketModification[] = {&WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_ALE_FLOW_ESTABLISHED_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_BASIC_PACKET_MODIFICATION_AT_EGRESS_VSWITCH_ETHERNET, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppBasicStreamInjection[] = {&WFPSAMPLER_CALLOUT_BASIC_STREAM_INJECTION_AT_STREAM_V4, + &WFPSAMPLER_CALLOUT_BASIC_STREAM_INJECTION_AT_STREAM_V6, + }; +static const GUID* const ppFastPacketInjection[] = {&WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_OUTBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_OUTBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_IPFORWARD_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_IPFORWARD_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_OUTBOUND_TRANSPORT_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_DATAGRAM_DATA_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_DATAGRAM_DATA_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_OUTBOUND_ICMP_ERROR_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_OUTBOUND_ICMP_ERROR_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_ALE_AUTH_CONNECT_V6, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_ALE_FLOW_ESTABLISHED_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN7) + + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_STREAM_PACKET_V4, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_STREAM_PACKET_V6, + +#if(NTDDI_VERSION >= NTDDI_WIN8) + + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_OUTBOUND_MAC_FRAME_ETHERNET, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_OUTBOUND_MAC_FRAME_NATIVE, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_INGRESS_VSWITCH_ETHERNET, + &WFPSAMPLER_CALLOUT_FAST_PACKET_INJECTION_AT_EGRESS_VSWITCH_ETHERNET, + +#endif // (NTDDI_VERSION >= NTDDI_WIN8) +#endif // (NTDDI_VERSION >= NTDDI_WIN7) + + }; +static const GUID* const ppFastStreamInjection[] = {&WFPSAMPLER_CALLOUT_FAST_STREAM_INJECTION_AT_STREAM_V4, + &WFPSAMPLER_CALLOUT_FAST_STREAM_INJECTION_AT_STREAM_V6, + }; +static const GUID* const ppFlowAssociation[] = {&WFPSAMPLER_CALLOUT_FLOW_ASSOCIATION_AT_ALE_FLOW_ESTABLISHED_V4, + &WFPSAMPLER_CALLOUT_FLOW_ASSOCIATION_AT_ALE_FLOW_ESTABLISHED_V6, + }; +static const GUID* const ppPendAuthorization[] = {&WFPSAMPLER_CALLOUT_PEND_AUTHORIZATION_AT_ALE_RESOURCE_ASSIGNMENT_V4, + &WFPSAMPLER_CALLOUT_PEND_AUTHORIZATION_AT_ALE_RESOURCE_ASSIGNMENT_V6, + &WFPSAMPLER_CALLOUT_PEND_AUTHORIZATION_AT_ALE_AUTH_LISTEN_V4, + &WFPSAMPLER_CALLOUT_PEND_AUTHORIZATION_AT_ALE_AUTH_LISTEN_V6, + &WFPSAMPLER_CALLOUT_PEND_AUTHORIZATION_AT_ALE_AUTH_RECV_ACCEPT_V4, + &WFPSAMPLER_CALLOUT_PEND_AUTHORIZATION_AT_ALE_AUTH_RECV_ACCEPT_V6, + &WFPSAMPLER_CALLOUT_PEND_AUTHORIZATION_AT_ALE_AUTH_CONNECT_V4, + &WFPSAMPLER_CALLOUT_PEND_AUTHORIZATION_AT_ALE_AUTH_CONNECT_V6, + }; +static const GUID* const ppPendEndpointClosure[] = {&WFPSAMPLER_CALLOUT_PEND_ENDPOINT_CLOSURE_AT_ALE_ENDPOINT_CLOSURE_V4, + &WFPSAMPLER_CALLOUT_PEND_ENDPOINT_CLOSURE_AT_ALE_ENDPOINT_CLOSURE_V6, + }; +static const GUID* const ppProxyByALERedirect[] = {&WFPSAMPLER_CALLOUT_PROXY_BY_ALE_AT_CONNECT_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_PROXY_BY_ALE_AT_CONNECT_REDIRECT_V6, + &WFPSAMPLER_CALLOUT_PROXY_BY_ALE_AT_BIND_REDIRECT_V4, + &WFPSAMPLER_CALLOUT_PROXY_BY_ALE_AT_BIND_REDIRECT_V6, + }; +static const GUID* const ppProxyByInjection[] = {&WFPSAMPLER_CALLOUT_PROXY_BY_INJECTION_AT_INBOUND_IPPACKET_V4, + &WFPSAMPLER_CALLOUT_PROXY_BY_INJECTION_AT_INBOUND_IPPACKET_V6, + &WFPSAMPLER_CALLOUT_PROXY_BY_INJECTION_AT_OUTBOUND_TRANSPORT_V4, + &WFPSAMPLER_CALLOUT_PROXY_BY_INJECTION_AT_OUTBOUND_TRANSPORT_V6, + }; + + +const UINT32 ADVANCED_PACKET_INJECTION_COUNT = RTL_NUMBER_OF(ppAdvancedPacketInjection); +const UINT32 BASIC_ACTION_BLOCK_COUNT = RTL_NUMBER_OF(ppBasicActionBlock); +const UINT32 BASIC_ACTION_CONTINUE_COUNT = RTL_NUMBER_OF(ppBasicActionContinue); +const UINT32 BASIC_ACTION_PERMIT_COUNT = RTL_NUMBER_OF(ppBasicActionPermit); +const UINT32 BASIC_ACTION_RANDOM_COUNT = RTL_NUMBER_OF(ppBasicActionRandom); +const UINT32 BASIC_PACKET_EXAMINATION_COUNT = RTL_NUMBER_OF(ppBasicPacketExamination); +const UINT32 BASIC_PACKET_INJECTION_COUNT = RTL_NUMBER_OF(ppBasicPacketInjection); +const UINT32 BASIC_PACKET_MODIFICATION_COUNT = RTL_NUMBER_OF(ppBasicPacketModification); +const UINT32 BASIC_STREAM_INJECTION_COUNT = RTL_NUMBER_OF(ppBasicStreamInjection); +const UINT32 FAST_PACKET_INJECTION_COUNT = RTL_NUMBER_OF(ppFastPacketInjection); +const UINT32 FAST_STREAM_INJECTION_COUNT = RTL_NUMBER_OF(ppFastStreamInjection); +const UINT32 FLOW_ASSOCIATION_COUNT = RTL_NUMBER_OF(ppFlowAssociation); +const UINT32 PEND_AUTHORIZATION_COUNT = RTL_NUMBER_OF(ppPendAuthorization); +const UINT32 PEND_ENDPOINT_CLOSURE_COUNT = RTL_NUMBER_OF(ppPendEndpointClosure); +const UINT32 PROXY_BY_ALE_REDIRECT_COUNT = RTL_NUMBER_OF(ppProxyByALERedirect); +const UINT32 PROXY_BY_INJECTION_COUNT = RTL_NUMBER_OF(ppProxyByInjection); + +const UINT32 EXPOSED_CALLOUT_COUNT = ADVANCED_PACKET_INJECTION_COUNT + + BASIC_ACTION_BLOCK_COUNT + + BASIC_ACTION_CONTINUE_COUNT + + BASIC_ACTION_PERMIT_COUNT + + BASIC_ACTION_RANDOM_COUNT + + BASIC_PACKET_EXAMINATION_COUNT + + BASIC_PACKET_INJECTION_COUNT + + BASIC_PACKET_MODIFICATION_COUNT + + BASIC_STREAM_INJECTION_COUNT + + FAST_PACKET_INJECTION_COUNT + + FAST_STREAM_INJECTION_COUNT + + FLOW_ASSOCIATION_COUNT + + PEND_AUTHORIZATION_COUNT + + PEND_ENDPOINT_CLOSURE_COUNT + + PROXY_BY_ALE_REDIRECT_COUNT + + PROXY_BY_INJECTION_COUNT; + +/// Indices of where each group of callouts begins in an uber array (created in HelperFunctions_ExposedCallouts.cpp) +const UINT32 BASE_INDEX_API = 0; +const UINT32 BASE_INDEX_BAB = BASE_INDEX_API + ADVANCED_PACKET_INJECTION_COUNT; +const UINT32 BASE_INDEX_BAC = BASE_INDEX_BAB + BASIC_ACTION_BLOCK_COUNT; +const UINT32 BASE_INDEX_BAP = BASE_INDEX_BAC + BASIC_ACTION_CONTINUE_COUNT; +const UINT32 BASE_INDEX_BAR = BASE_INDEX_BAP + BASIC_ACTION_PERMIT_COUNT; +const UINT32 BASE_INDEX_BPE = BASE_INDEX_BAR + BASIC_ACTION_RANDOM_COUNT; +const UINT32 BASE_INDEX_BPI = BASE_INDEX_BPE + BASIC_PACKET_EXAMINATION_COUNT; +const UINT32 BASE_INDEX_BPM = BASE_INDEX_BPI + BASIC_PACKET_INJECTION_COUNT; +const UINT32 BASE_INDEX_BSI = BASE_INDEX_BPM + BASIC_PACKET_MODIFICATION_COUNT; +const UINT32 BASE_INDEX_FPI = BASE_INDEX_BSI + BASIC_STREAM_INJECTION_COUNT; +const UINT32 BASE_INDEX_FSI = BASE_INDEX_FPI + FAST_PACKET_INJECTION_COUNT; +const UINT32 BASE_INDEX_FA = BASE_INDEX_FSI + FAST_STREAM_INJECTION_COUNT; +const UINT32 BASE_INDEX_PA = BASE_INDEX_FA + FLOW_ASSOCIATION_COUNT; +const UINT32 BASE_INDEX_PEC = BASE_INDEX_PA + PEND_AUTHORIZATION_COUNT; +const UINT32 BASE_INDEX_PBA = BASE_INDEX_PEC + PEND_ENDPOINT_CLOSURE_COUNT; +const UINT32 BASE_INDEX_PBI = BASE_INDEX_PBA + PROXY_BY_ALE_REDIRECT_COUNT; + +_IRQL_requires_(PASSIVE_LEVEL) +_IRQL_requires_same_ +_Success_(return == STATUS_SUCCESS) +NTSTATUS KrnlHlprExposedCalloutsUnregister(); + +_IRQL_requires_(PASSIVE_LEVEL) +_IRQL_requires_same_ +_Success_(return == STATUS_SUCCESS) +NTSTATUS KrnlHlprExposedCalloutsRegister(); + +_IRQL_requires_min_(PASSIVE_LEVEL) +_IRQL_requires_max_(DISPATCH_LEVEL) +_IRQL_requires_same_ +_Success_(return != 0) +PSTR KrnlHlprExposedCalloutToString(_In_ const GUID* pCalloutKey); |
