Condividi tramite


Funzione WdfDeviceInitRegisterPnpStateChangeCallback (wdfdevice.h)

[Si applica solo a KMDF]

Nota

Questo metodo è solo per uso interno di Microsoft.

Il metodo WdfDeviceInitRegisterPnpStateChangeCallback registra una funzione di callback di eventi fornita dal driver che il framework chiama quando la macchina a stati Plug and Play di un dispositivo cambia stato.

Sintassi

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

Parametri

[in] DeviceInit

Puntatore fornito dal chiamante a una struttura WDFDEVICE_INIT.

[in] PnpState

Enumeratore WDF_DEVICE_PNP_STATE che identifica lo stato della macchina Plug and Play per cui il driver richiede la notifica.

[in] EvtDevicePnpStateChange

Puntatore fornito dal chiamante al evtDevicePnpStateChange del driver funzione di callback degli eventi.

[in] CallbackTypes

Combinazione ORed di enumeratori WDF_STATE_NOTIFICATION_TYPEtipizzato.

Valore restituito

Se l'operazione ha esito positivo, WdfDeviceInitRegisterPnpStateChangeCallback restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
È stato rilevato un parametro non valido.
STATUS_INSUFFICIENT_RESOURCES
Memoria insufficiente per completare l'operazione.

Osservazioni

Se il driver chiama WdfDeviceInitRegisterPnpStateChangeCallback, deve farlo prima di chiamare WdfDeviceCreate.

Per altre informazioni su WdfDeviceInitRegisterPnpStateChangeCallback, vedere State Machines in Framework.

Esempi

L'esempio di codice seguente registra una funzione di callback di eventi che il framework chiamerà quando la macchina a stati Plug and Play del dispositivo cambia stato.

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

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
versione minima di KMDF 1.0
intestazione wdfdevice.h (include Wdf.h)
libreria Wdf01000.sys (vedere Controllo delle versioni della libreria framework).
IRQL PASSIVE_LEVEL
regole di conformità DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)

Vedere anche

EvtDevicePnpStateChange

WDFDEVICE_INIT

WDF_DEVICE_PNP_STATE

WDF_STATE_NOTIFICATION_TYPE