/*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: NetWakeSource.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 struct _NET_WAKE_SOURCE_BITMAP_PARAMETERS { ULONG Size; ULONG Id; UCHAR const * Pattern; SIZE_T PatternSize; UCHAR const * Mask; SIZE_T MaskSize; } NET_WAKE_SOURCE_BITMAP_PARAMETERS; inline void NET_WAKE_SOURCE_BITMAP_PARAMETERS_INIT( _Out_ NET_WAKE_SOURCE_BITMAP_PARAMETERS * Parameters ) { RtlZeroMemory(Parameters, sizeof(*Parameters)); Parameters->Size = sizeof(*Parameters); } typedef struct _NET_WAKE_SOURCE_MEDIA_CHANGE_PARAMETERS { ULONG Size; BOOLEAN MediaConnect; BOOLEAN MediaDisconnect; } NET_WAKE_SOURCE_MEDIA_CHANGE_PARAMETERS; inline void NET_WAKE_SOURCE_MEDIA_CHANGE_PARAMETERS_INIT( _Out_ NET_WAKE_SOURCE_MEDIA_CHANGE_PARAMETERS * Parameters ) { RtlZeroMemory(Parameters, sizeof(*Parameters)); Parameters->Size = sizeof(*Parameters); } typedef enum _NET_WAKE_SOURCE_TYPE { NetWakeSourceTypeBitmapPattern = 1, NetWakeSourceTypeMagicPacket, NetWakeSourceTypeMediaChange, NetWakeSourceTypePacketFilterMatch, NetWakeSourceTypeEapolPacket, } NET_WAKE_SOURCE_TYPE; // // NET Function: NetWakeSourceGetType // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI NET_WAKE_SOURCE_TYPE (NTAPI *PFN_NETWAKESOURCEGETTYPE)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETWAKESOURCE WakeSource ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE NET_WAKE_SOURCE_TYPE NetWakeSourceGetType( _In_ NETWAKESOURCE WakeSource ) { #if defined(NET_EVERYTHING_ALWAYS_AVAILABLE) return ((PFN_NETWAKESOURCEGETTYPE) NetFunctions[NetWakeSourceGetTypeTableIndex])(NetDriverGlobals, WakeSource); #else if (NET_IS_FUNCTION_AVAILABLE(NetWakeSourceGetType)) { return ((PFN_NETWAKESOURCEGETTYPE) NetFunctions[NetWakeSourceGetTypeTableIndex])(NetDriverGlobals, WakeSource); } else { ((PFN_WDFDRIVERERRORREPORTAPIMISSING) WdfFunctions[WdfDriverErrorReportApiMissingTableIndex])(WdfDriverGlobals, WdfGetDriver(), NetFrameworkExtensionName, NetWakeSourceGetTypeTableIndex, FALSE); return (NET_WAKE_SOURCE_TYPE)0; } #endif } // // NET Function: NetWakeSourceGetAdapter // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI NETADAPTER (NTAPI *PFN_NETWAKESOURCEGETADAPTER)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETWAKESOURCE WakeSource ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE NETADAPTER NetWakeSourceGetAdapter( _In_ NETWAKESOURCE WakeSource ) { #if defined(NET_EVERYTHING_ALWAYS_AVAILABLE) return ((PFN_NETWAKESOURCEGETADAPTER) NetFunctions[NetWakeSourceGetAdapterTableIndex])(NetDriverGlobals, WakeSource); #else if (NET_IS_FUNCTION_AVAILABLE(NetWakeSourceGetAdapter)) { return ((PFN_NETWAKESOURCEGETADAPTER) NetFunctions[NetWakeSourceGetAdapterTableIndex])(NetDriverGlobals, WakeSource); } else { ((PFN_WDFDRIVERERRORREPORTAPIMISSING) WdfFunctions[WdfDriverErrorReportApiMissingTableIndex])(WdfDriverGlobals, WdfGetDriver(), NetFrameworkExtensionName, NetWakeSourceGetAdapterTableIndex, FALSE); return (NETADAPTER)0; } #endif } // // NET Function: NetWakeSourceGetBitmapParameters // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_NETWAKESOURCEGETBITMAPPARAMETERS)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETWAKESOURCE WakeSource, _Inout_ NET_WAKE_SOURCE_BITMAP_PARAMETERS* Parameters ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE void NetWakeSourceGetBitmapParameters( _In_ NETWAKESOURCE WakeSource, _Inout_ NET_WAKE_SOURCE_BITMAP_PARAMETERS* Parameters ) { #if defined(NET_EVERYTHING_ALWAYS_AVAILABLE) ((PFN_NETWAKESOURCEGETBITMAPPARAMETERS) NetFunctions[NetWakeSourceGetBitmapParametersTableIndex])(NetDriverGlobals, WakeSource, Parameters); #else if (NET_IS_FUNCTION_AVAILABLE(NetWakeSourceGetBitmapParameters)) { ((PFN_NETWAKESOURCEGETBITMAPPARAMETERS) NetFunctions[NetWakeSourceGetBitmapParametersTableIndex])(NetDriverGlobals, WakeSource, Parameters); } else { ((PFN_WDFDRIVERERRORREPORTAPIMISSING) WdfFunctions[WdfDriverErrorReportApiMissingTableIndex])(WdfDriverGlobals, WdfGetDriver(), NetFrameworkExtensionName, NetWakeSourceGetBitmapParametersTableIndex, FALSE); } #endif } // // NET Function: NetWakeSourceGetMediaChangeParameters // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_NETWAKESOURCEGETMEDIACHANGEPARAMETERS)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETWAKESOURCE WakeSource, _Inout_ NET_WAKE_SOURCE_MEDIA_CHANGE_PARAMETERS* Parameters ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE void NetWakeSourceGetMediaChangeParameters( _In_ NETWAKESOURCE WakeSource, _Inout_ NET_WAKE_SOURCE_MEDIA_CHANGE_PARAMETERS* Parameters ) { #if defined(NET_EVERYTHING_ALWAYS_AVAILABLE) ((PFN_NETWAKESOURCEGETMEDIACHANGEPARAMETERS) NetFunctions[NetWakeSourceGetMediaChangeParametersTableIndex])(NetDriverGlobals, WakeSource, Parameters); #else if (NET_IS_FUNCTION_AVAILABLE(NetWakeSourceGetMediaChangeParameters)) { ((PFN_NETWAKESOURCEGETMEDIACHANGEPARAMETERS) NetFunctions[NetWakeSourceGetMediaChangeParametersTableIndex])(NetDriverGlobals, WakeSource, Parameters); } else { ((PFN_WDFDRIVERERRORREPORTAPIMISSING) WdfFunctions[WdfDriverErrorReportApiMissingTableIndex])(WdfDriverGlobals, WdfGetDriver(), NetFrameworkExtensionName, NetWakeSourceGetMediaChangeParametersTableIndex, FALSE); } #endif } WDF_EXTERN_C_END