// Copyright (C) Microsoft Corporation. All rights reserved. // // NOTE: This header is generated by stubwork. Please make any // modifications to the corresponding template files // (.x or .y) and use stubwork to regenerate the header // #ifndef _WIFICXPOWEROFFLOAD_H_ #define _WIFICXPOWEROFFLOAD_H_ #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 _WIFI_POWER_OFFLOAD_TYPE { WifiPowerOffloadType80211RsnRekey = 1, WifiPowerOffloadTypeWakeOnIncomingActionFrame } WIFI_POWER_OFFLOAD_TYPE; #define WIFI_RSN_MAX_CIPHER_KEY_LENGTH 32 typedef struct _WIFI_POWER_OFFLOAD_80211RSNREKEY_PARAMETERS { ULONG Size; ULONG ProtocolOffloadId; UINT64 ReplayCounter; ULONG KCKLength; ULONG KEKLength; UCHAR KCK [WIFI_RSN_MAX_CIPHER_KEY_LENGTH]; UCHAR KEK [WIFI_RSN_MAX_CIPHER_KEY_LENGTH]; } WIFI_POWER_OFFLOAD_80211RSNREKEY_PARAMETERS; inline void WIFI_POWER_OFFLOAD_80211RSNREKEY_PARAMETERS_INIT( _Out_ WIFI_POWER_OFFLOAD_80211RSNREKEY_PARAMETERS * Parameters ) { RtlZeroMemory(Parameters, sizeof(WIFI_POWER_OFFLOAD_80211RSNREKEY_PARAMETERS)); Parameters->Size = WIFI_STRUCTURE_SIZE(WIFI_POWER_OFFLOAD_80211RSNREKEY_PARAMETERS); } typedef struct _WIFI_POWER_OFFLOAD_ACTION_FRAME_WAKE_PATTERN_PARAMETERS { ULONG Size; BOOLEAN FilterOnFrameAction; UINT8 ActionFrameCategory; UINT8 ActionFrameAction; } WIFI_POWER_OFFLOAD_ACTION_FRAME_WAKE_PATTERN_PARAMETERS; inline void WIFI_POWER_OFFLOAD_ACTION_FRAME_WAKE_PATTERN_PARAMETERS_INIT( _Out_ WIFI_POWER_OFFLOAD_ACTION_FRAME_WAKE_PATTERN_PARAMETERS * Parameters ) { RtlZeroMemory(Parameters, sizeof(WIFI_POWER_OFFLOAD_ACTION_FRAME_WAKE_PATTERN_PARAMETERS)); Parameters->Size = WIFI_STRUCTURE_SIZE(WIFI_POWER_OFFLOAD_ACTION_FRAME_WAKE_PATTERN_PARAMETERS); } // // WIFI Function: WifiPowerOffloadGetType // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI WIFI_POWER_OFFLOAD_TYPE (NTAPI *PFN_WIFIPOWEROFFLOADGETTYPE)( _In_ PWIFI_DRIVER_GLOBALS DriverGlobals, _In_ WIFIPOWEROFFLOAD WifiPowerOffload ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE WIFI_POWER_OFFLOAD_TYPE WifiPowerOffloadGetType( _In_ WIFIPOWEROFFLOAD WifiPowerOffload ) { return ((PFN_WIFIPOWEROFFLOADGETTYPE) WifiFunctions[WifiPowerOffloadGetTypeTableIndex])(WifiDriverGlobals, WifiPowerOffload); } // // WIFI Function: WifiPowerOffloadGetAdapter // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI NETADAPTER (NTAPI *PFN_WIFIPOWEROFFLOADGETADAPTER)( _In_ PWIFI_DRIVER_GLOBALS DriverGlobals, _In_ WIFIPOWEROFFLOAD WifiPowerOffload ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE NETADAPTER WifiPowerOffloadGetAdapter( _In_ WIFIPOWEROFFLOAD WifiPowerOffload ) { return ((PFN_WIFIPOWEROFFLOADGETADAPTER) WifiFunctions[WifiPowerOffloadGetAdapterTableIndex])(WifiDriverGlobals, WifiPowerOffload); } // // WIFI Function: WifiPowerOffloadGet80211RSNRekeyParameters // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_WIFIPOWEROFFLOADGET80211RSNREKEYPARAMETERS)( _In_ PWIFI_DRIVER_GLOBALS DriverGlobals, _In_ WIFIPOWEROFFLOAD WifiPowerOffload, _Inout_ WIFI_POWER_OFFLOAD_80211RSNREKEY_PARAMETERS* Parameters ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE void WifiPowerOffloadGet80211RSNRekeyParameters( _In_ WIFIPOWEROFFLOAD WifiPowerOffload, _Inout_ WIFI_POWER_OFFLOAD_80211RSNREKEY_PARAMETERS* Parameters ) { ((PFN_WIFIPOWEROFFLOADGET80211RSNREKEYPARAMETERS) WifiFunctions[WifiPowerOffloadGet80211RSNRekeyParametersTableIndex])(WifiDriverGlobals, WifiPowerOffload, Parameters); } // // WIFI Function: WifiPowerOffloadGetActionFrameWakePatternParameters // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_WIFIPOWEROFFLOADGETACTIONFRAMEWAKEPATTERNPARAMETERS)( _In_ PWIFI_DRIVER_GLOBALS DriverGlobals, _In_ WIFIPOWEROFFLOAD WifiPowerOffload, _Inout_ WIFI_POWER_OFFLOAD_ACTION_FRAME_WAKE_PATTERN_PARAMETERS* Parameters ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE void WifiPowerOffloadGetActionFrameWakePatternParameters( _In_ WIFIPOWEROFFLOAD WifiPowerOffload, _Inout_ WIFI_POWER_OFFLOAD_ACTION_FRAME_WAKE_PATTERN_PARAMETERS* Parameters ) { #if defined(WIFI_EVERYTHING_ALWAYS_AVAILABLE) ((PFN_WIFIPOWEROFFLOADGETACTIONFRAMEWAKEPATTERNPARAMETERS) WifiFunctions[WifiPowerOffloadGetActionFrameWakePatternParametersTableIndex])(WifiDriverGlobals, WifiPowerOffload, Parameters); #else if (WIFI_IS_FUNCTION_AVAILABLE(WifiPowerOffloadGetActionFrameWakePatternParameters)) { ((PFN_WIFIPOWEROFFLOADGETACTIONFRAMEWAKEPATTERNPARAMETERS) WifiFunctions[WifiPowerOffloadGetActionFrameWakePatternParametersTableIndex])(WifiDriverGlobals, WifiPowerOffload, Parameters); } else { ((PFN_WDFDRIVERERRORREPORTAPIMISSING) WdfFunctions[WdfDriverErrorReportApiMissingTableIndex])(WdfDriverGlobals, WdfGetDriver(), WifiFrameworkExtensionName, WifiPowerOffloadGetActionFrameWakePatternParametersTableIndex, FALSE); } #endif } WDF_EXTERN_C_END #endif // _WIFICXPOWEROFFLOAD_H_