EvtDeviceReportedMissing
EvtDeviceUsageNotificationEx
EvtDeviceWdmIrpDispatch
EvtDeviceWdmPostPoFxRegisterDevice
EvtDeviceWdmPrePoFxUnregisterDevice
WDF_DEVICE_INTERFACE_PROPERTY_DATA
WDF_DEVICE_INTERFACE_PROPERTY_DATA_INIT
WDF_DEVICE_PROPERTY_DATA
WDF_DEVICE_PROPERTY_DATA_INIT
WDF_DISPATCH_IRP_TO_IO_QUEUE_FLAGS
WDF_EVENT_TYPE
WDF_IO_TYPE_CONFIG
WDF_IO_TYPE_CONFIG_INIT
WDF_POWER_FRAMEWORK_SETTINGS
WDF_POWER_FRAMEWORK_SETTINGS_INIT
WDF_POWER_POLICY_IDLE_TIMEOUT_TYPE
WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE
WDF_REMOVE_LOCK_OPTIONS
WDF_REMOVE_LOCK_OPTIONS_FLAGS
WDF_REMOVE_LOCK_OPTIONS_INIT
WdfDeviceAllocAndQueryInterfaceProperty method
WdfDeviceAllocAndQueryPropertyEx method
WdfDeviceAssignInterfaceProperty method
WdfDeviceAssignProperty method
WdfDeviceConfigureWdmIrpDispatchCallback method
WdfDeviceGetDeviceStackIoType method
WdfDeviceGetHardwareRegisterMappedAddress
WdfDeviceInitSetIoTypeEx method
WdfDeviceInitSetReleaseHardwareOrderOnFailure method
WdfDeviceInitSetRemoveLockOptions method
WdfDeviceMapIoSpace
WdfDeviceOpenDevicemapKey method
WdfDevicePostEvent
WdfDeviceQueryInterfaceProperty method
WdfDeviceQueryPropertyEx method
WdfDeviceReadFromHardware
WdfDeviceResumeIdleWithTag method
WdfDeviceStopIdleWithTag method
WdfDeviceUnmapIoSpace
WdfDeviceWdmAssignPowerFrameworkSettings method
WdfDeviceWdmDispatchIrp method
WdfDeviceWdmDispatchIrpToIoQueue method
WdfDeviceWriteToHardware
WdfFdoInitAllocAndQueryPropertyEx method
WdfFdoInitQueryPropertyEx method
展开 最小化

EvtDeviceArmWakeFromSx

A driver's EvtDeviceArmWakeFromSx event callback function arms (that is, enables) a device so that it can trigger a wake signal while in a low-power device state. The wake signal causes the device to enter its working state (D0) and causes the system to enter its working state (S0).

语法

EVT_WDF_DEVICE_ARM_WAKE_FROM_SX EvtDeviceArmWakeFromSx;

NTSTATUS EvtDeviceArmWakeFromSx(
  __in  WDFDEVICE Device
)
{ ... }

参数

Device [in]

A handle to a framework device object.

返回值

If the EvtDeviceArmWakeFromSx callback function encounters no error, 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.

If NT_SUCCESS(status) equals FALSE, the framework calls the driver's EvtDeviceDisarmWakeFromSx callback function. (The framework does not report a device failure to the PnP manager.)

评论

To register an EvtDeviceArmWakeFromSx callback function, a driver must call WdfDeviceInitSetPowerPolicyEventCallbacks. Drivers can register either an EvtDeviceArmWakeFromSx callback function or an EvtDeviceArmWakeFromSxWithReason callback function, but not both.

This callback function handles device-specific operations that are needed to enable the device to detect an external event that triggers a wake signal on the bus. The bus driver's EvtDeviceEnableWakeAtBus callback function handles bus-specific operations, such as enabling the PCI bus's Power Management Event (PME) signal.

If a driver has registered an EvtDeviceArmWakeFromSx or EvtDeviceArmWakeFromSxWithReason callback function, the framework calls it while the device is still in the D0 device power state, before the bus driver lowers the device's power state but after the framework has sent a wait/wake IRP on behalf of the driver.

The process occurs in the following sequence:

  1. The framework determines that the system is about to enter a low-power system state.

  2. The framework calls the driver's EvtDeviceArmWakeFromSx or EvtDeviceArmWakeFromSxWithReason callback function.

  3. The framework asks the driver for the device's bus to lower the device's power.

Immediately before a device enters a low-power state, the framework calls the driver's EvtDeviceD0Exit callback function.

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

You do not need to provide an EvtDeviceArmWakeFromSx or EvtDeviceArmWakeFromSxWithReason callback function if your device does not require special hardware operations that enable the device to trigger a wake signal.

For more information about this callback function, see Supporting System Wake-Up.

示例

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

typedef NTSTATUS
  (EVT_WDF_DEVICE_ARM_WAKE_FROM_SX)(
    IN WDFDEVICE  Device
    );

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

EVT_WDF_DEVICE_ARM_WAKE_FROM_SX MyDeviceArmWakeFromSx;

Then, implement your callback function as follows:

NTSTATUS
 MyDeviceArmWakeFromSx (
    IN WDFDEVICE  Device
    )
  {...}

要求

版本

Supported by version 1.0 and later versions of KMDF.

标头

Wdfdevice.h (包括Wdf.h)

IRQL

PASSIVE_LEVEL

另请参见

EvtDeviceArmWakeFromS0
EvtDeviceArmWakeFromSxWithReason
EvtDeviceDisarmWakeFromSx

 

 

社区附加资源

添加
显示:
© 2015 Microsoft