// 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 _NETEXECUTIONCONTEXT_2_4_H_ #define _NETEXECUTIONCONTEXT_2_4_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 _Function_class_(EVT_NET_EXECUTION_CONTEXT_PRE_ADVANCE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN NTAPI EVT_NET_EXECUTION_CONTEXT_PRE_ADVANCE( _In_ NETEXECUTIONCONTEXT ExecutionContext ); typedef EVT_NET_EXECUTION_CONTEXT_PRE_ADVANCE *PFN_NET_EXECUTION_CONTEXT_PRE_ADVANCE; typedef _Function_class_(EVT_NET_EXECUTION_CONTEXT_POST_ADVANCE) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) BOOLEAN NTAPI EVT_NET_EXECUTION_CONTEXT_POST_ADVANCE( _In_ NETEXECUTIONCONTEXT ExecutionContext ); typedef EVT_NET_EXECUTION_CONTEXT_POST_ADVANCE *PFN_NET_EXECUTION_CONTEXT_POST_ADVANCE; typedef _Function_class_(EVT_NET_EXECUTION_CONTEXT_SET_NOTIFICATION_ENABLED) _IRQL_requires_same_ _IRQL_requires_max_(DISPATCH_LEVEL) void NTAPI EVT_NET_EXECUTION_CONTEXT_SET_NOTIFICATION_ENABLED( _In_ NETEXECUTIONCONTEXT ExecutionContext, _In_ BOOLEAN NotificationEnabled ); typedef EVT_NET_EXECUTION_CONTEXT_SET_NOTIFICATION_ENABLED *PFN_NET_EXECUTION_CONTEXT_SET_NOTIFICATION_ENABLED; typedef struct _NET_EXECUTION_CONTEXT_CONFIG { ULONG Size; PFN_NET_EXECUTION_CONTEXT_PRE_ADVANCE EvtPreAdvance; PFN_NET_EXECUTION_CONTEXT_POST_ADVANCE EvtPostAdvance; PFN_NET_EXECUTION_CONTEXT_SET_NOTIFICATION_ENABLED EvtSetNotificationEnabled; } NET_EXECUTION_CONTEXT_CONFIG; inline void NET_EXECUTION_CONTEXT_CONFIG_INIT( _Out_ NET_EXECUTION_CONTEXT_CONFIG * Config, _In_ PFN_NET_EXECUTION_CONTEXT_SET_NOTIFICATION_ENABLED EvtSetNotificationEnabled ) { RtlZeroMemory(Config, sizeof(*Config)); Config->Size = sizeof(*Config); Config->EvtSetNotificationEnabled = EvtSetNotificationEnabled; } typedef _Function_class_(EVT_NET_EXECUTION_CONTEXT_TASK) _IRQL_requires_same_ _IRQL_requires_(PASSIVE_LEVEL) void NTAPI EVT_NET_EXECUTION_CONTEXT_TASK( _In_ NETEXECUTIONCONTEXTTASK NetExecutionContextTaskHandle ); typedef EVT_NET_EXECUTION_CONTEXT_TASK *PFN_NET_EXECUTION_CONTEXT_TASK; typedef struct _NET_EXECUTION_CONTEXT_TASK_CONFIG { ULONG Size; PFN_NET_EXECUTION_CONTEXT_TASK EvtTask; } NET_EXECUTION_CONTEXT_TASK_CONFIG; inline void NET_EXECUTION_CONTEXT_TASK_CONFIG_INIT( _Out_ NET_EXECUTION_CONTEXT_TASK_CONFIG * NetExecutionContextTaskConfig, _In_ PFN_NET_EXECUTION_CONTEXT_TASK EvtTask ) { RtlZeroMemory(NetExecutionContextTaskConfig, sizeof(NET_EXECUTION_CONTEXT_TASK_CONFIG)); NetExecutionContextTaskConfig->Size = sizeof(NET_EXECUTION_CONTEXT_TASK_CONFIG); NetExecutionContextTaskConfig->EvtTask = EvtTask; } // // NET Function: NetExecutionContextCreate // typedef _Must_inspect_result_ _IRQL_requires_(PASSIVE_LEVEL) WDFAPI NTSTATUS (NTAPI *PFN_NETEXECUTIONCONTEXTCREATE)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ WDFDEVICE Device, _In_ CONST NET_EXECUTION_CONTEXT_CONFIG* Config, _In_opt_ WDF_OBJECT_ATTRIBUTES* ClientAttributes, _Out_ NETEXECUTIONCONTEXT* NetExecutionContextHandle ); _Must_inspect_result_ _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE NTSTATUS NetExecutionContextCreate( _In_ WDFDEVICE Device, _In_ CONST NET_EXECUTION_CONTEXT_CONFIG* Config, _In_opt_ WDF_OBJECT_ATTRIBUTES* ClientAttributes, _Out_ NETEXECUTIONCONTEXT* NetExecutionContextHandle ) { return ((PFN_NETEXECUTIONCONTEXTCREATE) NetFunctions[NetExecutionContextCreateTableIndex])(NetDriverGlobals, Device, Config, ClientAttributes, NetExecutionContextHandle); } // // NET Function: NetExecutionContextTaskCreate // typedef _Must_inspect_result_ _IRQL_requires_(PASSIVE_LEVEL) WDFAPI NTSTATUS (NTAPI *PFN_NETEXECUTIONCONTEXTTASKCREATE)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETEXECUTIONCONTEXT NetExecutionContextHandle, _In_opt_ WDF_OBJECT_ATTRIBUTES* ClientAttributes, _In_ NET_EXECUTION_CONTEXT_TASK_CONFIG* NetExecutionContextTaskConfig, _Out_ NETEXECUTIONCONTEXTTASK* NetExecutionContextTaskHandle ); _Must_inspect_result_ _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE NTSTATUS NetExecutionContextTaskCreate( _In_ NETEXECUTIONCONTEXT NetExecutionContextHandle, _In_opt_ WDF_OBJECT_ATTRIBUTES* ClientAttributes, _In_ NET_EXECUTION_CONTEXT_TASK_CONFIG* NetExecutionContextTaskConfig, _Out_ NETEXECUTIONCONTEXTTASK* NetExecutionContextTaskHandle ) { return ((PFN_NETEXECUTIONCONTEXTTASKCREATE) NetFunctions[NetExecutionContextTaskCreateTableIndex])(NetDriverGlobals, NetExecutionContextHandle, ClientAttributes, NetExecutionContextTaskConfig, NetExecutionContextTaskHandle); } // // NET Function: NetExecutionContextNotify // typedef _IRQL_requires_max_(HIGH_LEVEL) WDFAPI void (NTAPI *PFN_NETEXECUTIONCONTEXTNOTIFY)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETEXECUTIONCONTEXT ExecutionContext ); _IRQL_requires_max_(HIGH_LEVEL) FORCEINLINE void NetExecutionContextNotify( _In_ NETEXECUTIONCONTEXT ExecutionContext ) { ((PFN_NETEXECUTIONCONTEXTNOTIFY) NetFunctions[NetExecutionContextNotifyTableIndex])(NetDriverGlobals, ExecutionContext); } // // NET Function: NetExecutionContextTaskEnqueue // typedef _IRQL_requires_max_(DISPATCH_LEVEL) WDFAPI void (NTAPI *PFN_NETEXECUTIONCONTEXTTASKENQUEUE)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETEXECUTIONCONTEXTTASK NetExecutionContextTaskHandle ); _IRQL_requires_max_(DISPATCH_LEVEL) FORCEINLINE void NetExecutionContextTaskEnqueue( _In_ NETEXECUTIONCONTEXTTASK NetExecutionContextTaskHandle ) { ((PFN_NETEXECUTIONCONTEXTTASKENQUEUE) NetFunctions[NetExecutionContextTaskEnqueueTableIndex])(NetDriverGlobals, NetExecutionContextTaskHandle); } // // NET Function: NetExecutionContextTaskWaitCompletion // typedef _IRQL_requires_(PASSIVE_LEVEL) WDFAPI void (NTAPI *PFN_NETEXECUTIONCONTEXTTASKWAITCOMPLETION)( _In_ PNET_DRIVER_GLOBALS DriverGlobals, _In_ NETEXECUTIONCONTEXTTASK NetExecutionContextTaskHandle ); _IRQL_requires_(PASSIVE_LEVEL) FORCEINLINE void NetExecutionContextTaskWaitCompletion( _In_ NETEXECUTIONCONTEXTTASK NetExecutionContextTaskHandle ) { ((PFN_NETEXECUTIONCONTEXTTASKWAITCOMPLETION) NetFunctions[NetExecutionContextTaskWaitCompletionTableIndex])(NetDriverGlobals, NetExecutionContextTaskHandle); } WDF_EXTERN_C_END #endif // _NETEXECUTIONCONTEXT_2_4_H_