Expand Minimize

EvtDeviceSurpriseRemoval function

[Applies to KMDF and UMDF]

A driver's EvtDeviceSurpriseRemoval event callback function performs any operations that are needed after a device has been unexpectedly removed from the system or after a driver reports that the device has failed.

Syntax


EVT_WDF_DEVICE_SURPRISE_REMOVAL EvtDeviceSurpriseRemoval;

VOID EvtDeviceSurpriseRemoval(
  _In_  WDFDEVICE Device
)
{ ... }

Parameters

Device [in]

A handle to a framework device object.

Return value

None

Remarks

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

The framework does not synchronize the EvtDeviceSurpriseRemoval callback function with other PnP and power management callback functions. For information about how the framework synchronizes the execution of a driver's event callback functions, see Using Automatic Synchronization.

For more information about when the framework calls this callback function, and for more information about synchronization issues, see A User Unplugs a Device.

Examples

To define an EvtDeviceSurpriseRemoval callback function, you must first provide a function declaration that identifies the type of callback function you’re defining. Windows provides a set of callback function types for drivers. Declaring a function using the callback function types helps Code Analysis for Drivers, Static Driver Verifier (SDV), and other verification tools find errors, and it’s a requirement for writing drivers for the Windows operating system.

For example, to define an EvtDeviceSurpriseRemoval callback function that is named MyDeviceSurpriseRemoval, use the EVT_WDF_DEVICE_SURPRISE_REMOVAL type as shown in this code example:


EVT_WDF_DEVICE_SURPRISE_REMOVAL  MyDeviceSurpriseRemoval;

Then, implement your callback function as follows:


_Use_decl_annotations_
VOID
 MyDeviceSurpriseRemoval (
    WDFDEVICE  Device
    )
  {...}

The EVT_WDF_DEVICE_SURPRISE_REMOVAL function type is defined in the Wdfdevice.h header file. To more accurately identify errors when you run the code analysis tools, be sure to add the _Use_decl_annotations_ annotation to your function definition. The _Use_decl_annotations_ annotation ensures that the annotations that are applied to the EVT_WDF_DEVICE_SURPRISE_REMOVAL function type in the header file are used. For more information about the requirements for function declarations, see Declaring Functions by Using Function Role Types for KMDF Drivers. For information about _Use_decl_annotations_, see Annotating Function Behavior.

Requirements

Minimum KMDF version

1.0

Minimum UMDF version

2.0

Header

Wdfdevice.h (include Wdf.h)

IRQL

PASSIVE_LEVEL

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft. All rights reserved.