2020-09-24 20:41:01 +00:00
|
|
|
/*++
|
|
|
|
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
|
|
|
|
_WdfVersionBuild_
|
|
|
|
|
|
|
|
Module Name:
|
|
|
|
|
|
|
|
wdfcontrol.h
|
|
|
|
|
|
|
|
Abstract:
|
|
|
|
|
|
|
|
Defines functions for controller and creating a "controller" NT4 style
|
|
|
|
WDFDEVICE handle.
|
|
|
|
|
|
|
|
Environment:
|
|
|
|
|
|
|
|
kernel mode only
|
|
|
|
|
|
|
|
Revision History:
|
|
|
|
|
|
|
|
--*/
|
|
|
|
|
|
|
|
//
|
|
|
|
// 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 _WDFCONTROL_H_
|
|
|
|
#define _WDFCONTROL_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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
|
|
|
|
|
|
|
typedef
|
|
|
|
_Function_class_(EVT_WDF_DEVICE_SHUTDOWN_NOTIFICATION)
|
|
|
|
_IRQL_requires_same_
|
|
|
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
|
|
|
VOID
|
2020-09-24 20:48:32 +00:00
|
|
|
STDCALL
|
2020-09-24 20:41:01 +00:00
|
|
|
EVT_WDF_DEVICE_SHUTDOWN_NOTIFICATION(
|
|
|
|
_In_
|
|
|
|
WDFDEVICE Device
|
|
|
|
);
|
|
|
|
|
|
|
|
typedef EVT_WDF_DEVICE_SHUTDOWN_NOTIFICATION *PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION;
|
|
|
|
|
|
|
|
typedef enum _WDF_DEVICE_SHUTDOWN_FLAGS {
|
|
|
|
WdfDeviceShutdown = 0x01,
|
|
|
|
WdfDeviceLastChanceShutdown = 0x02,
|
|
|
|
} WDF_DEVICE_SHUTDOWN_FLAGS;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
// WDF Function: WdfControlDeviceInitAllocate
|
|
|
|
//
|
|
|
|
typedef
|
|
|
|
_Must_inspect_result_
|
|
|
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
|
|
|
WDFAPI
|
|
|
|
PWDFDEVICE_INIT
|
2020-09-24 20:48:32 +00:00
|
|
|
(STDCALL *PFN_WDFCONTROLDEVICEINITALLOCATE)(
|
2020-09-24 20:41:01 +00:00
|
|
|
_In_
|
|
|
|
PWDF_DRIVER_GLOBALS DriverGlobals,
|
|
|
|
_In_
|
|
|
|
WDFDRIVER Driver,
|
|
|
|
_In_
|
|
|
|
CONST UNICODE_STRING* SDDLString
|
|
|
|
);
|
|
|
|
|
|
|
|
_Must_inspect_result_
|
|
|
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
|
|
|
FORCEINLINE
|
2020-09-24 20:48:32 +00:00
|
|
|
PWDFDEVICE_INIT
|
2020-09-24 20:41:01 +00:00
|
|
|
WdfControlDeviceInitAllocate(
|
|
|
|
_In_
|
|
|
|
WDFDRIVER Driver,
|
|
|
|
_In_
|
|
|
|
CONST UNICODE_STRING* SDDLString
|
|
|
|
)
|
|
|
|
{
|
|
|
|
return ((PFN_WDFCONTROLDEVICEINITALLOCATE) WdfFunctions[WdfControlDeviceInitAllocateTableIndex])(WdfDriverGlobals, Driver, SDDLString);
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
// WDF Function: WdfControlDeviceInitSetShutdownNotification
|
|
|
|
//
|
|
|
|
typedef
|
|
|
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
|
|
|
WDFAPI
|
|
|
|
VOID
|
2020-09-24 20:48:32 +00:00
|
|
|
(STDCALL *PFN_WDFCONTROLDEVICEINITSETSHUTDOWNNOTIFICATION)(
|
2020-09-24 20:41:01 +00:00
|
|
|
_In_
|
|
|
|
PWDF_DRIVER_GLOBALS DriverGlobals,
|
|
|
|
_In_
|
|
|
|
PWDFDEVICE_INIT DeviceInit,
|
|
|
|
_In_
|
|
|
|
PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification,
|
|
|
|
_In_
|
|
|
|
UCHAR Flags
|
|
|
|
);
|
|
|
|
|
|
|
|
_IRQL_requires_max_(PASSIVE_LEVEL)
|
|
|
|
FORCEINLINE
|
2020-09-24 20:48:32 +00:00
|
|
|
VOID
|
2020-09-24 20:41:01 +00:00
|
|
|
WdfControlDeviceInitSetShutdownNotification(
|
|
|
|
_In_
|
|
|
|
PWDFDEVICE_INIT DeviceInit,
|
|
|
|
_In_
|
|
|
|
PFN_WDF_DEVICE_SHUTDOWN_NOTIFICATION Notification,
|
|
|
|
_In_
|
|
|
|
UCHAR Flags
|
|
|
|
)
|
|
|
|
{
|
|
|
|
((PFN_WDFCONTROLDEVICEINITSETSHUTDOWNNOTIFICATION) WdfFunctions[WdfControlDeviceInitSetShutdownNotificationTableIndex])(WdfDriverGlobals, DeviceInit, Notification, Flags);
|
|
|
|
}
|
|
|
|
|
|
|
|
//
|
|
|
|
// WDF Function: WdfControlFinishInitializing
|
|
|
|
//
|
|
|
|
typedef
|
|
|
|
_IRQL_requires_max_(DISPATCH_LEVEL)
|
|
|
|
WDFAPI
|
|
|
|
VOID
|
2020-09-24 20:48:32 +00:00
|
|
|
(STDCALL *PFN_WDFCONTROLFINISHINITIALIZING)(
|
2020-09-24 20:41:01 +00:00
|
|
|
_In_
|
|
|
|
PWDF_DRIVER_GLOBALS DriverGlobals,
|
|
|
|
_In_
|
|
|
|
WDFDEVICE Device
|
|
|
|
);
|
|
|
|
|
|
|
|
_IRQL_requires_max_(DISPATCH_LEVEL)
|
|
|
|
FORCEINLINE
|
2020-09-24 20:48:32 +00:00
|
|
|
VOID
|
2020-09-24 20:41:01 +00:00
|
|
|
WdfControlFinishInitializing(
|
|
|
|
_In_
|
|
|
|
WDFDEVICE Device
|
|
|
|
)
|
|
|
|
{
|
|
|
|
((PFN_WDFCONTROLFINISHINITIALIZING) WdfFunctions[WdfControlFinishInitializingTableIndex])(WdfDriverGlobals, Device);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif // (NTDDI_VERSION >= NTDDI_WIN2K)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WDF_EXTERN_C_END
|
|
|
|
|
|
|
|
#endif // _WDFCONTROL_H_
|
|
|
|
|