EVT_WDF_DEVICE_EJECT callback function (wdfpdo.h)

[Applies to KMDF only]

A driver's EvtDeviceEject event callback function handles operations that are necessary to eject a device from its docking station.

Syntax

EVT_WDF_DEVICE_EJECT EvtWdfDeviceEject;

NTSTATUS EvtWdfDeviceEject(
  [in] WDFDEVICE Device
)
{...}

Parameters

[in] Device

A handle to a framework device object.

Return value

If the operation succeeds, the driver must return STATUS_SUCCESS. Otherwise it must return an NTSTATUS value that NT_SUCCESS evaluates as FALSE. Do not return STATUS_NOT_SUPPORTED.

For more information about return values, see Reporting Device Failures.

Remarks

Framework-based bus drivers can provide an EvtDeviceEject callback function. A bus driver must provide an EvtDeviceEject callback function if the driver must perform operations that physically eject one of its enumerated child devices from the device's docking station. To register this callback function, the bus driver must call WdfPdoInitSetEventCallbacks.

Before calling the EvtDeviceEject callback function, the framework calls the driver's EvtDeviceD0Exit and EvtDeviceReleaseHardware callback functions.

If a driver's EvtDeviceEject callback function returns STATUS_SUCCESS, the framework updates the driver's child list to indicate that the ejected device is no longer available. Therefore the driver does not have to call WdfPdoMarkMissing or WdfChildListUpdateChildDescriptionAsMissing.

For more information about device ejection, see Supporting Ejectable Devices.

Requirements

Requirement Value
Target Platform Universal
Minimum KMDF version 1.0
Header wdfpdo.h (include Wdf.h)
IRQL PASSIVE_LEVEL

See also

EvtDeviceSetLock