Freigeben über


WdfDeviceInitRegisterPnpStateChangeCallback-Funktion (wdfdevice.h)

[Gilt nur für KMDF]

Anmerkung

Diese Methode ist nur für die interne Verwendung von Microsoft vorgesehen.

Die WdfDeviceInitRegisterPnpStateChangeCallback--Methode registriert eine vom Framework bereitgestellte Ereignisrückruffunktion, die vom Framework aufgerufen wird, wenn der Zustand des Plug- und Play-Zustandsautomaten eines Geräts geändert wird.

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
);

Parameter

[in] DeviceInit

Ein vom Aufrufer bereitgestellter Zeiger auf eine WDFDEVICE_INIT Struktur.

[in] PnpState

Ein WDF_DEVICE_PNP_STATE Enumerator, der den Zustand des Plug- und Play-Computers identifiziert, für den der Treiber eine Benachrichtigung anfordert.

[in] EvtDevicePnpStateChange

Ein vom Aufrufer bereitgestellter Zeiger auf die EvtDevicePnpStateChange Ereignisrückruffunktion des Treibers.

[in] CallbackTypes

Eine ORed-Kombination aus WDF_STATE_NOTIFICATION_TYPE-typed-Enumeratoren.

Rückgabewert

Wenn der Vorgang erfolgreich ist, gibt WdfDeviceInitRegisterPnpStateChangeCallback STATUS_SUCCESS zurück. Weitere Rückgabewerte sind:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Ein ungültiger Parameter wurde erkannt.
STATUS_INSUFFICIENT_RESOURCES
Es ist nicht genügend Arbeitsspeicher vorhanden, um den Vorgang abzuschließen.

Bemerkungen

Wenn Ihr Treiber WdfDeviceInitRegisterPnpStateChangeCallback-aufruft, muss er dies tun, bevor er WdfDeviceCreateaufruft.

Weitere Informationen zu WdfDeviceInitRegisterPnpStateChangeCallback-finden Sie unter State Machines in the Framework.

Beispiele

Im folgenden Codebeispiel wird eine Ereignisrückruffunktion registriert, die vom Framework aufgerufen wird, wenn sich der Zustandszustand des Geräts ändert.

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

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Header- wdfdevice.h (einschließen Wdf.h)
Library Wdf01000.sys (siehe Framework-Bibliotheksversionsverwaltung.)
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)

Siehe auch

EvtDevicePnpStateChange

WDFDEVICE_INIT

WDF_DEVICE_PNP_STATE

WDF_STATE_NOTIFICATION_TYPE