情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

EvtDeviceD0Exit

A driver's EvtDeviceD0Exit event callback function performs operations that are needed when the driver's device leaves the D0 power state.

構文

EVT_WDF_DEVICE_D0_EXIT EvtDeviceD0Exit;

NTSTATUS EvtDeviceD0Exit(
  __in  WDFDEVICE Device,
  __in  WDF_POWER_DEVICE_STATE TargetState
)
{ ... }

パラメーター

Device [in]

A handle to a framework device object.

TargetState [in]

A WDF_POWER_DEVICE_STATE-typed enumerator that identifies the device power state that the device is about to enter.

戻り値

If the EvtDeviceD0Exit callback function encounters no errors, it must return STATUS_SUCCESS or another status value for which NT_SUCCESS(status) equals TRUE. Otherwise, it must return a status value for which NT_SUCCESS(status) equals FALSE.

解説

To register an EvtDeviceD0Exit callback function, a driver must call WdfDeviceInitSetPnpPowerEventCallbacks.

If the driver has registered an EvtDeviceD0Exit callback function, the framework calls the function each time one of the driver's devices leaves its working (D0) state. A device leaves the D0 state when one of the following occurs:

  • The system and all of its devices are about to leave their working states and enter a low-power state.

  • The device is about to enter a low-power state because it is idle, if the device supports low-power idle.

  • The Plug and Play manager is attempting to redistribute the system's hardware resources.

  • A user has indicated, typically by means of an application's user interface, that he or she wants to remove the device.

The framework also calls the EvtDeviceD0Exit callback function after a device has been removed unexpectedly (surprise-removed).

For more information about when the framework calls this callback function, see PnP and Power Management Scenarios.

Unless the device has been surprise-removed, the framework calls this callback function immediately after it disables the device's interrupts, but before the device's power is reduced from D0. The TargetState parameter identifies the device power state that the device is about to enter.

The EvtDeviceD0Exit callback function must perform any operations that are necessary before the device enters the specified low-power state, such as saving any information that the driver will need later to restore the device to its D0 power state.

If the TargetState parameter is WdfPowerDevicePrepareForHibernation, the driver must not shut off the device, because the system will use the device when saving its hibernation file.

If TargetState is WdfPowerDeviceD3Final, you should assume that the system is being turned off, the device is about to be removed, or a resource rebalance is in progress. If your driver must save information, it should write it to disk or some other permanent storage medium.

For more information about drivers that provide this callback function, see Supporting PnP and Power Management in Function Drivers.

The function type is declared in Wdfdevice.h, as follows.

typedef NTSTATUS
  (EVT_WDF_DEVICE_D0_EXIT)(
    IN WDFDEVICE Device,
    IN WDF_POWER_DEVICE_STATE  TargetState
    );

To define an EvtDeviceD0Exit callback function that is named MyDeviceD0Exit, you must first provide a function declaration that SDV and other verification tools require, as follows:

EVT_WDF_DEVICE_D0_EXIT  MyDeviceD0Exit;

Then, implement your callback function as follows:

NTSTATUS
 MyDeviceD0Exit (
    IN WDFDEVICE  Device,
    IN WDF_POWER_DEVICE_STATE  TargetState
    )
  {...}

要件

バージョン

Supported by version 1.0 and later versions of KMDF.

ヘッダー

Wdfdevice.h (includeWdf.h)

IRQL

PASSIVE_LEVEL

参照

EvtDeviceD0Entry

 

 

コミュニティの追加

表示:
© 2014 Microsoft