WdfDeviceInitRegisterPnpStateChangeCallback function (wdfdevice.h)
[Applies to KMDF only]
Note
This method is for Microsoft internal use only.
The WdfDeviceInitRegisterPnpStateChangeCallback method registers a driver-supplied event callback function that the framework calls when a device's Plug and Play state machine changes state.
Syntax
NTSTATUS WdfDeviceInitRegisterPnpStateChangeCallback(
[in] PWDFDEVICE_INIT DeviceInit,
[in] WDF_DEVICE_PNP_STATE PnpState,
[in] PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange,
[in] ULONG CallbackTypes
);
Parameters
[in] DeviceInit
A caller-supplied pointer to a WDFDEVICE_INIT structure.
[in] PnpState
A WDF_DEVICE_PNP_STATE enumerator that identifies the Plug and Play machine state for which the driver is requesting notification.
[in] EvtDevicePnpStateChange
A caller-supplied pointer to the driver's EvtDevicePnpStateChange event callback function.
[in] CallbackTypes
An ORed combination of WDF_STATE_NOTIFICATION_TYPE-typed enumerators.
Return value
If the operation succeeds, WdfDeviceInitRegisterPnpStateChangeCallback returns STATUS_SUCCESS. Additional return values include:
Return code | Description |
---|---|
|
An invalid parameter was detected. |
|
There is insufficient memory to complete the operation. |
Remarks
If your driver calls WdfDeviceInitRegisterPnpStateChangeCallback, it must do so before it calls WdfDeviceCreate.
For more information about WdfDeviceInitRegisterPnpStateChangeCallback, see State Machines in the Framework.
Examples
The following code example registers an event callback function that the framework will call when the device's Plug and Play state machine changes state.
status = WdfDeviceInitRegisterPnpStateChangeCallback(
DeviceInit,
WdfDevStatePnpEjectFailed,
MyDrvPnPStateChangeCallback,
StateNotificationAllStates
);
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Minimum KMDF version | 1.0 |
Header | wdfdevice.h (include Wdf.h) |
Library | Wdf01000.sys (see Framework Library Versioning.) |
IRQL | PASSIVE_LEVEL |
DDI compliance rules | ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf) |