/*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: NetAdapterOffload.h Environment: user mode NOTE: This header is generated by stubwork. To modify contents, add or remove or tags in the corresponding .x and .y template files. --*/ #pragma once #ifndef WDF_EXTERN_C #ifdef __cplusplus #define WDF_EXTERN_C extern "C" #define WDF_EXTERN_C_START extern "C" { #define WDF_EXTERN_C_END } #else #define WDF_EXTERN_C #define WDF_EXTERN_C_START #define WDF_EXTERN_C_END #endif #endif WDF_EXTERN_C_START typedef enum _NET_ADAPTER_OFFLOAD_LAYER3_FLAGS { NetAdapterOffloadLayer3FlagIPv4NoOptions = 0x00000001, NetAdapterOffloadLayer3FlagIPv4WithOptions = 0x00000002, NetAdapterOffloadLayer3FlagIPv6NoExtensions = 0x00000004, NetAdapterOffloadLayer3FlagIPv6WithExtensions = 0x00000008, } NET_ADAPTER_OFFLOAD_LAYER3_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(NET_ADAPTER_OFFLOAD_LAYER3_FLAGS); typedef enum _NET_ADAPTER_OFFLOAD_LAYER4_FLAGS { NetAdapterOffloadLayer4FlagTcpNoOptions = 0x00000001, NetAdapterOffloadLayer4FlagTcpWithOptions = 0x00000002, NetAdapterOffloadLayer4FlagUdp = 0x00000004, } NET_ADAPTER_OFFLOAD_LAYER4_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(NET_ADAPTER_OFFLOAD_LAYER4_FLAGS); typedef _Function_class_(EVT_NET_ADAPTER_OFFLOAD_SET_TX_CHECKSUM) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) void NTAPI EVT_NET_ADAPTER_OFFLOAD_SET_TX_CHECKSUM( _In_ NETADAPTER Adapter, _In_ NETOFFLOAD Offload ); typedef EVT_NET_ADAPTER_OFFLOAD_SET_TX_CHECKSUM *PFN_NET_ADAPTER_OFFLOAD_SET_TX_CHECKSUM; typedef _Function_class_(EVT_NET_ADAPTER_OFFLOAD_SET_RX_CHECKSUM) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) void NTAPI EVT_NET_ADAPTER_OFFLOAD_SET_RX_CHECKSUM( _In_ NETADAPTER Adapter, _In_ NETOFFLOAD Offload ); typedef EVT_NET_ADAPTER_OFFLOAD_SET_RX_CHECKSUM *PFN_NET_ADAPTER_OFFLOAD_SET_RX_CHECKSUM; typedef struct _NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES { ULONG Size; NET_ADAPTER_OFFLOAD_LAYER3_FLAGS Layer3Flags; NET_ADAPTER_OFFLOAD_LAYER4_FLAGS Layer4Flags; UINT16 Layer3HeaderOffsetLimit; UINT16 Layer4HeaderOffsetLimit; PFN_NET_ADAPTER_OFFLOAD_SET_TX_CHECKSUM EvtAdapterOffloadSetTxChecksum; } NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES; typedef struct _NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES { ULONG Size; PFN_NET_ADAPTER_OFFLOAD_SET_RX_CHECKSUM EvtAdapterOffloadSetRxChecksum; } NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES; inline void NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES_INIT( _Out_ NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES * Capabilities, _In_ NET_ADAPTER_OFFLOAD_LAYER3_FLAGS Layer3Flags, _In_ PFN_NET_ADAPTER_OFFLOAD_SET_TX_CHECKSUM EvtAdapterOffloadSetTxChecksum ) { RtlZeroMemory(Capabilities, sizeof(*Capabilities)); Capabilities->Size = sizeof(*Capabilities); Capabilities->Layer3Flags = Layer3Flags; Capabilities->EvtAdapterOffloadSetTxChecksum = EvtAdapterOffloadSetTxChecksum; } inline void NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES_INIT( _Out_ NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES * Capabilities, _In_ PFN_NET_ADAPTER_OFFLOAD_SET_RX_CHECKSUM EvtAdapterOffloadSetRxChecksum ) { RtlZeroMemory(Capabilities, sizeof(*Capabilities)); Capabilities->Size = sizeof(*Capabilities); Capabilities->EvtAdapterOffloadSetRxChecksum = EvtAdapterOffloadSetRxChecksum; } typedef _Function_class_(EVT_NET_ADAPTER_OFFLOAD_SET_GSO) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) void NTAPI EVT_NET_ADAPTER_OFFLOAD_SET_GSO( _In_ NETADAPTER Adapter, _In_ NETOFFLOAD Offload ); typedef EVT_NET_ADAPTER_OFFLOAD_SET_GSO *PFN_NET_ADAPTER_OFFLOAD_SET_GSO; typedef struct _NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES { ULONG Size; NET_ADAPTER_OFFLOAD_LAYER3_FLAGS Layer3Flags; NET_ADAPTER_OFFLOAD_LAYER4_FLAGS Layer4Flags; UINT16 Layer4HeaderOffsetLimit; SIZE_T MaximumOffloadSize; SIZE_T MinimumSegmentCount; PFN_NET_ADAPTER_OFFLOAD_SET_GSO EvtAdapterOffloadSetGso; } NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES; inline void NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES_INIT( _Out_ NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES * GsoCapabilities, _In_ NET_ADAPTER_OFFLOAD_LAYER3_FLAGS Layer3Flags, _In_ NET_ADAPTER_OFFLOAD_LAYER4_FLAGS Layer4Flags, _In_ SIZE_T MaximumOffloadSize, _In_ SIZE_T MinimumSegmentCount, _In_ PFN_NET_ADAPTER_OFFLOAD_SET_GSO EvtAdapterOffloadSetGso ) { RtlZeroMemory(GsoCapabilities, sizeof(NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES)); GsoCapabilities->Size = sizeof(NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES); GsoCapabilities->Layer3Flags = Layer3Flags; GsoCapabilities->Layer4Flags = Layer4Flags; GsoCapabilities->MaximumOffloadSize = MaximumOffloadSize; GsoCapabilities->MinimumSegmentCount = MinimumSegmentCount; GsoCapabilities->EvtAdapterOffloadSetGso = EvtAdapterOffloadSetGso; } typedef _Function_class_(EVT_NET_ADAPTER_OFFLOAD_SET_RSC) _IRQL_requires_same_ _IRQL_requires_max_(PASSIVE_LEVEL) void NTAPI EVT_NET_ADAPTER_OFFLOAD_SET_RSC( _In_ NETADAPTER Adapter, _In_ NETOFFLOAD Offload ); typedef EVT_NET_ADAPTER_OFFLOAD_SET_RSC *PFN_NET_ADAPTER_OFFLOAD_SET_RSC; typedef struct _NET_ADAPTER_OFFLOAD_RSC_CAPABILITIES { // // Size of structure // ULONG Size; // // Flags specifying on what layer 3 protocols the hardware can perform RSC. // NetAdapterOffloadLayer3FlagIPv4NoOptions and NetAdapterOffloadLayer3FlagIPv6NoExtensions // are the only valid flag values, to indicate IPv4 and IPv6 support respectively. // NET_ADAPTER_OFFLOAD_LAYER3_FLAGS Layer3Flags; // // Flags specifying on what layer 4 protocols the hardware can perform RSC // NetAdapterOffloadLayer4FlagTcpNoOptions and NetAdapterOffloadLayer4FlagUdp // are the only valid flag values to indicate TCP and UDP support. // NET_ADAPTER_OFFLOAD_LAYER4_FLAGS Layer4Flags; // // Flag specifying whether the hardware can perform RSC on packets with TCP timestamp option // BOOLEAN TcpTimestampOption; PFN_NET_ADAPTER_OFFLOAD_SET_RSC EvtAdapterOffloadSetRsc; } NET_ADAPTER_OFFLOAD_RSC_CAPABILITIES; inline void NET_ADAPTER_OFFLOAD_RSC_CAPABILITIES_INIT( _Out_ NET_ADAPTER_OFFLOAD_RSC_CAPABILITIES * RscCapabilities, _In_ NET_ADAPTER_OFFLOAD_LAYER3_FLAGS Layer3Flags, _In_ NET_ADAPTER_OFFLOAD_LAYER4_FLAGS Layer4Flags, _In_ PFN_NET_ADAPTER_OFFLOAD_SET_RSC EvtAdapterOffloadSetRsc ) { RtlZeroMemory(RscCapabilities, sizeof(NET_ADAPTER_OFFLOAD_RSC_CAPABILITIES)); RscCapabilities->Size = sizeof(NET_ADAPTER_OFFLOAD_RSC_CAPABILITIES); RscCapabilities->Layer3Flags = Layer3Flags; RscCapabilities->Layer4Flags = Layer4Flags; RscCapabilities->EvtAdapterOffloadSetRsc = EvtAdapterOffloadSetRsc; } typedef enum _NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_FLAGS { NetAdapterOffloadIeee8021PriorityTaggingFlag = 0x00000001, NetAdapterOffloadIeee8021VlanTaggingFlag = 0x00000002, } NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_FLAGS; DEFINE_ENUM_FLAG_OPERATORS(NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_FLAGS); typedef struct _NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_CAPABILITIES { // // Size of structure // ULONG Size; // // Flag specifying whether NIC can perform IEEE 802.1 priority tagging and/or vlan tagging // NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_FLAGS Flags; } NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_CAPABILITIES; inline void NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_CAPABILITIES_INIT( _Out_ NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_CAPABILITIES * Ieee8021qCapabilities, _In_ NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_FLAGS Flags ) { RtlZeroMemory(Ieee8021qCapabilities, sizeof(NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_CAPABILITIES)); Ieee8021qCapabilities->Size = sizeof(NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_CAPABILITIES); Ieee8021qCapabilities->Flags = Flags; } // // NET Function: NetAdapterOffloadSetTxChecksumCapabilities // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_NETADAPTEROFFLOADSETTXCHECKSUMCAPABILITIES)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETADAPTER Adapter, _In_ CONST NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES* HardwareCapabilities ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE void NetAdapterOffloadSetTxChecksumCapabilities( _In_ NETADAPTER Adapter, _In_ CONST NET_ADAPTER_OFFLOAD_TX_CHECKSUM_CAPABILITIES* HardwareCapabilities ) { ((PFN_NETADAPTEROFFLOADSETTXCHECKSUMCAPABILITIES) NetFunctions[NetAdapterOffloadSetTxChecksumCapabilitiesTableIndex])(NetDriverGlobals, Adapter, HardwareCapabilities); } // // NET Function: NetOffloadIsTxChecksumIPv4Enabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISTXCHECKSUMIPV4ENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsTxChecksumIPv4Enabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISTXCHECKSUMIPV4ENABLED) NetFunctions[NetOffloadIsTxChecksumIPv4EnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsTxChecksumTcpEnabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISTXCHECKSUMTCPENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsTxChecksumTcpEnabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISTXCHECKSUMTCPENABLED) NetFunctions[NetOffloadIsTxChecksumTcpEnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsTxChecksumUdpEnabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISTXCHECKSUMUDPENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsTxChecksumUdpEnabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISTXCHECKSUMUDPENABLED) NetFunctions[NetOffloadIsTxChecksumUdpEnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetAdapterOffloadSetRxChecksumCapabilities // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_NETADAPTEROFFLOADSETRXCHECKSUMCAPABILITIES)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETADAPTER Adapter, _In_ CONST NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES* Capabilities ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE void NetAdapterOffloadSetRxChecksumCapabilities( _In_ NETADAPTER Adapter, _In_ CONST NET_ADAPTER_OFFLOAD_RX_CHECKSUM_CAPABILITIES* Capabilities ) { ((PFN_NETADAPTEROFFLOADSETRXCHECKSUMCAPABILITIES) NetFunctions[NetAdapterOffloadSetRxChecksumCapabilitiesTableIndex])(NetDriverGlobals, Adapter, Capabilities); } // // NET Function: NetOffloadIsRxChecksumIPv4Enabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISRXCHECKSUMIPV4ENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsRxChecksumIPv4Enabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISRXCHECKSUMIPV4ENABLED) NetFunctions[NetOffloadIsRxChecksumIPv4EnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsRxChecksumTcpEnabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISRXCHECKSUMTCPENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsRxChecksumTcpEnabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISRXCHECKSUMTCPENABLED) NetFunctions[NetOffloadIsRxChecksumTcpEnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsRxChecksumUdpEnabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISRXCHECKSUMUDPENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsRxChecksumUdpEnabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISRXCHECKSUMUDPENABLED) NetFunctions[NetOffloadIsRxChecksumUdpEnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetAdapterOffloadSetGsoCapabilities // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_NETADAPTEROFFLOADSETGSOCAPABILITIES)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETADAPTER Adapter, _In_ NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES* HardwareCapabilities ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE void NetAdapterOffloadSetGsoCapabilities( _In_ NETADAPTER Adapter, _In_ NET_ADAPTER_OFFLOAD_GSO_CAPABILITIES* HardwareCapabilities ) { ((PFN_NETADAPTEROFFLOADSETGSOCAPABILITIES) NetFunctions[NetAdapterOffloadSetGsoCapabilitiesTableIndex])(NetDriverGlobals, Adapter, HardwareCapabilities); } // // NET Function: NetOffloadIsLsoIPv4Enabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISLSOIPV4ENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsLsoIPv4Enabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISLSOIPV4ENABLED) NetFunctions[NetOffloadIsLsoIPv4EnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsLsoIPv6Enabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISLSOIPV6ENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsLsoIPv6Enabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISLSOIPV6ENABLED) NetFunctions[NetOffloadIsLsoIPv6EnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsUsoIPv4Enabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISUSOIPV4ENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsUsoIPv4Enabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISUSOIPV4ENABLED) NetFunctions[NetOffloadIsUsoIPv4EnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsUsoIPv6Enabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISUSOIPV6ENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsUsoIPv6Enabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISUSOIPV6ENABLED) NetFunctions[NetOffloadIsUsoIPv6EnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetAdapterOffloadSetRscCapabilities // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_NETADAPTEROFFLOADSETRSCCAPABILITIES)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETADAPTER Adapter, _In_ NET_ADAPTER_OFFLOAD_RSC_CAPABILITIES* HardwareCapabilities ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE void NetAdapterOffloadSetRscCapabilities( _In_ NETADAPTER Adapter, _In_ NET_ADAPTER_OFFLOAD_RSC_CAPABILITIES* HardwareCapabilities ) { ((PFN_NETADAPTEROFFLOADSETRSCCAPABILITIES) NetFunctions[NetAdapterOffloadSetRscCapabilitiesTableIndex])(NetDriverGlobals, Adapter, HardwareCapabilities); } // // NET Function: NetOffloadIsTcpRscIPv4Enabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISTCPRSCIPV4ENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsTcpRscIPv4Enabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISTCPRSCIPV4ENABLED) NetFunctions[NetOffloadIsTcpRscIPv4EnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsTcpRscIPv6Enabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISTCPRSCIPV6ENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsTcpRscIPv6Enabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISTCPRSCIPV6ENABLED) NetFunctions[NetOffloadIsTcpRscIPv6EnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsRscTcpTimestampOptionEnabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISRSCTCPTIMESTAMPOPTIONENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsRscTcpTimestampOptionEnabled( _In_ NETOFFLOAD Offload ) { return ((PFN_NETOFFLOADISRSCTCPTIMESTAMPOPTIONENABLED) NetFunctions[NetOffloadIsRscTcpTimestampOptionEnabledTableIndex])(NetDriverGlobals, Offload); } // // NET Function: NetOffloadIsUdpRscEnabled // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI BOOLEAN (NTAPI *PFN_NETOFFLOADISUDPRSCENABLED)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETOFFLOAD Offload ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE BOOLEAN NetOffloadIsUdpRscEnabled( _In_ NETOFFLOAD Offload ) { #if defined(NET_EVERYTHING_ALWAYS_AVAILABLE) return ((PFN_NETOFFLOADISUDPRSCENABLED) NetFunctions[NetOffloadIsUdpRscEnabledTableIndex])(NetDriverGlobals, Offload); #else if (NET_IS_FUNCTION_AVAILABLE(NetOffloadIsUdpRscEnabled)) { return ((PFN_NETOFFLOADISUDPRSCENABLED) NetFunctions[NetOffloadIsUdpRscEnabledTableIndex])(NetDriverGlobals, Offload); } else { ((PFN_WDFDRIVERERRORREPORTAPIMISSING) WdfFunctions[WdfDriverErrorReportApiMissingTableIndex])(WdfDriverGlobals, WdfGetDriver(), NetFrameworkExtensionName, NetOffloadIsUdpRscEnabledTableIndex, FALSE); return (BOOLEAN)0; } #endif } // // NET Function: NetAdapterOffloadSetIeee8021qTagCapabilities // typedef _IRQL_requires_max_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_NETADAPTEROFFLOADSETIEEE8021QTAGCAPABILITIES)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETADAPTER Adapter, _In_ NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_CAPABILITIES* HardwareCapabilities ); _IRQL_requires_max_(PASSIVE_LEVEL) FORCEINLINE void NetAdapterOffloadSetIeee8021qTagCapabilities( _In_ NETADAPTER Adapter, _In_ NET_ADAPTER_OFFLOAD_IEEE8021Q_TAG_CAPABILITIES* HardwareCapabilities ) { ((PFN_NETADAPTEROFFLOADSETIEEE8021QTAGCAPABILITIES) NetFunctions[NetAdapterOffloadSetIeee8021qTagCapabilitiesTableIndex])(NetDriverGlobals, Adapter, HardwareCapabilities); } WDF_EXTERN_C_END