即插即用和电源管理例程设置的配置结构

来源:互联网 发布:vue.js可以做什么 编辑:程序博客网 时间:2024/05/01 23:30

即插即用和电源管理例程设置的配置结构:

TheWDF_PNPPOWER_EVENT_CALLBACKS structure contains pointers to a driver's Plug and Play and power event callback functions.

typedef struct _WDF_PNPPOWER_EVENT_CALLBACKS {    ULONG ;    PFN_WDF_DEVICE_D0_ENTRY  ;//进入正常工作电源D0状态的调用例程    PFN_WDF_DEVICE_D0_ENTRY_POST_INTERRUPTS_ENABLED  ;//进入正常工作电源D0状态后,使能中断的例程    PFN_WDF_DEVICE_D0_EXIT  ;//退出推出工作电源D0状态的调用例程    PFN_WDF_DEVICE_D0_EXIT_PRE_INTERRUPTS_DISABLED  ;//退出工作电源D0状态之前,禁止中断的例程    PFN_WDF_DEVICE_PREPARE_HARDWARE  ;//获取资源配置例程    PFN_WDF_DEVICE_RELEASE_HARDWARE  ;//删除资源配置例程    PFN_WDF_DEVICE_SELF_MANAGED_IO_CLEANUP  ;//设备删除时调用,做一些清除工作    PFN_WDF_DEVICE_SELF_MANAGED_IO_FLUSH  ;//设备删除时调用例程,做一些释放工作    PFN_WDF_DEVICE_SELF_MANAGED_IO_INIT  ;//设备初次启动时调用例程,启动操作    PFN_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND  ;//设备进入省点状态或删除时调用,停止操作    PFN_WDF_DEVICE_SELF_MANAGED_IO_RESTART  ;//设备再次启动时调用例程,启动操作    PFN_WDF_DEVICE_SURPRISE_REMOVAL  ;//设备意外拔出调用例程    PFN_WDF_DEVICE_QUERY_REMOVE  ;//询问设备是否可以删除的调用例程    PFN_WDF_DEVICE_QUERY_STOP  ;//询问设备是否可以停止的调用例程    PFN_WDF_DEVICE_USAGE_NOTIFICATION  ;    PFN_WDF_DEVICE_RELATIONS_QUERY  ;} WDF_PNPPOWER_EVENT_CALLBACKS, *PWDF_PNPPOWER_EVENT_CALLBACKS;
使用 WDF_PNPPOWER_EVENT_CALLBACKS_INIT 进行例程初始化配置。The WDF_PNPPOWER_EVENT_CALLBACKS_INIT function initializes a driver's structure.
VOID  WDF_PNPPOWER_EVENT_CALLBACKS_INIT(    OUT PWDF_PNPPOWER_EVENT_CALLBACKS      );

使用 WdfDeviceInitSetPnpPowerEventCallbacks 进行设置。

(1)FDO 即插即用例程The WDF_FDO_EVENT_CALLBACKS structure contains pointers to a function driver's PnP event callback functions.

typedef struct _WDF_FDO_EVENT_CALLBACKS {    ULONG ;    PFN_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS  ;    PFN_WDF_DEVICE_FILTER_RESOURCE_REQUIREMENTS  ;    PFN_WDF_DEVICE_REMOVE_ADDED_RESOURCES  ;} WDF_FDO_EVENT_CALLBACKS, *PWDF_FDO_EVENT_CALLBACKS;The WDF_FDO_EVENT_CALLBACKS_INIT function initializes a structure.VOID  WDF_FDO_EVENT_CALLBACKS_INIT(    OUT PWDF_FDO_EVENT_CALLBACKS      )
The WdfFdoInitSetEventCallbacks method registers a framework-based function driver's event callback functions, for a specified device.
VOID  WdfFdoInitSetEventCallbacks(    IN PWDFDEVICE_INIT  ,    IN PWDF_FDO_EVENT_CALLBACKS      );
(2)PDO 即插即用例程The WDF_PDO_EVENT_CALLBACKS structure is the dispatch table for a bus driver's event callback functions.
typedef struct _WDF_PDO_EVENT_CALLBACKS {    ULONG ;    PFN_WDF_DEVICE_RESOURCES_QUERY  ;    PFN_WDF_DEVICE_RESOURCE_REQUIREMENTS_QUERY  ;    PFN_WDF_DEVICE_EJECT  ;    PFN_WDF_DEVICE_SET_LOCK  ;    PFN_WDF_DEVICE_ENABLE_WAKE_AT_BUS  ;    PFN_WDF_DEVICE_DISABLE_WAKE_AT_BUS  ;} WDF_PDO_EVENT_CALLBACKS, *PWDF_PDO_EVENT_CALLBACKS;
The WDF_PDO_EVENT_CALLBACKS_INIT function initializes a structure.
VOID FORCEINLINE  WDF_PDO_EVENT_CALLBACKS_INIT(    OUT PWDF_PDO_EVENT_CALLBACKS      );
The WdfPdoInitSetEventCallbacks method registers a bus driver's event callback functions.
VOID  WdfPdoInitSetEventCallbacks(    IN PWDFDEVICE_INIT  ,    IN PWDF_PDO_EVENT_CALLBACKS      );