Compartir a través de


Función WdfDeviceInitRegisterPnpStateChangeCallback (wdfdevice.h)

[Solo se aplica a KMDF]

Nota

Este método es solo para uso interno de Microsoft.

El método WdfDeviceInitRegisterPnpStateChangeCallback registra una función de devolución de llamada de eventos proporcionada por el controlador que el marco llama cuando cambia el estado de la máquina de estado Plug and Play de un dispositivo.

Sintaxis

NTSTATUS WdfDeviceInitRegisterPnpStateChangeCallback(
  [in] PWDFDEVICE_INIT                              DeviceInit,
  [in] WDF_DEVICE_PNP_STATE                         PnpState,
  [in] PFN_WDF_DEVICE_PNP_STATE_CHANGE_NOTIFICATION EvtDevicePnpStateChange,
  [in] ULONG                                        CallbackTypes
);

Parámetros

[in] DeviceInit

Puntero proporcionado por el autor de la llamada a una estructura WDFDEVICE_INIT.

[in] PnpState

Enumerador WDF_DEVICE_PNP_STATE que identifica el estado de la máquina Plug and Play para el que el controlador solicita una notificación.

[in] EvtDevicePnpStateChange

Puntero proporcionado por el autor de la llamada a la función de devolución de llamada del controlador EvtDevicePnpStateChange.

[in] CallbackTypes

Combinación ORed de enumeradores con tipo WDF_STATE_NOTIFICATION_TYPE.

Valor devuelto

Si la operación se realiza correctamente, WdfDeviceInitRegisterPnpStateChangeCallback devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:

Código devuelto Descripción
STATUS_INVALID_PARAMETER
Se detectó un parámetro no válido.
STATUS_INSUFFICIENT_RESOURCES
No hay memoria suficiente para completar la operación.

Observaciones

Si el controlador llama a WdfDeviceInitRegisterPnpStateChangeCallback, debe hacerlo antes de llamar a WdfDeviceCreate.

Para obtener más información sobre WdfDeviceInitRegisterPnpStateChangeCallback, vea State Machines in the Framework.

Ejemplos

En el ejemplo de código siguiente se registra una función de devolución de llamada de eventos a la que el marco llamará cuando la máquina de estado Plug and Play del dispositivo cambie el estado.

status = WdfDeviceInitRegisterPnpStateChangeCallback(
                                                     DeviceInit,
                                                     WdfDevStatePnpEjectFailed,
                                                     MyDrvPnPStateChangeCallback,
                                                     StateNotificationAllStates
                                                     );

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
encabezado de wdfdevice.h (incluya Wdf.h)
biblioteca de Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos).
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceIni, PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)

Consulte también

EvtDevicePnpStateChange

WDFDEVICE_INIT

WDF_DEVICE_PNP_STATE

WDF_STATE_NOTIFICATION_TYPE