Freigeben über


EVT_WDF_DEVICE_PREPARE_HARDWARE Rückruffunktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die EvtDevicePrepareHardware eines Treibers Ereignisrückruffunktion führt alle Vorgänge aus, die erforderlich sind, um einen Zugriff auf ein Gerät für den Treiber zu ermöglichen.

Syntax

EVT_WDF_DEVICE_PREPARE_HARDWARE EvtWdfDevicePrepareHardware;

NTSTATUS EvtWdfDevicePrepareHardware(
  [in] WDFDEVICE Device,
  [in] WDFCMRESLIST ResourcesRaw,
  [in] WDFCMRESLIST ResourcesTranslated
)
{...}

Parameter

[in] Device

Ein Handle zu einem Framework-Geräteobjekt.

[in] ResourcesRaw

Ein Handle zu einem Framework-Ressourcenlistenobjekt, das die rohen Hardwareressourcen identifiziert, die der Plug- und Play-Manager dem Gerät zugewiesen hat.

[in] ResourcesTranslated

Ein Handle zu einem Framework-Ressourcenlistenobjekt, das die übersetzten Hardwareressourcen identifiziert, die der Plug- und Play-Manager dem Gerät zugewiesen hat.

Rückgabewert

Wenn die EvtDevicePrepareHardware Rückruffunktion keine Fehler aufweist, muss sie STATUS_SUCCESS oder einen anderen Statuswert zurückgeben, für den NT_SUCCESS(Status) TRUEentspricht. Andernfalls muss ein Statuswert zurückgegeben werden, für den NT_SUCCESS(Status) FALSE-entspricht. Geben Sie STATUS_NOT_SUPPORTED nicht zurück.

Wenn NT_SUCCESS(Status) FALSE-ist, ruft das Framework die EvtDeviceReleaseHardware Rückruffunktion des Treibers auf.

Weitere Informationen zu den Rückgabewerten dieser Rückruffunktion finden Sie unter Melden von Gerätefehlern.

Bemerkungen

Um eine EvtDevicePrepareHardware Rückruffunktion zu registrieren, muss ein Treiber WdfDeviceInitSetPnpPowerEventCallbacksaufrufen.

Wenn der Treiber eine EvtDevicePrepareHardware Rückruffunktion für ein Gerät registriert hat, ruft das Framework die Funktion auf, nachdem der Plug and Play-Manager dem Gerät Hardwareressourcen zugewiesen hat und nachdem das Gerät seinen nicht initialisierten D0-Zustand eingegeben hat. (Der Plug-and-Play-Manager startet immer ein übergeordnetes Gerät, bevor es die untergeordneten Geräte dieses Geräts startet.)

Das Framework ruft die EvtDevicePrepareHardware Rückruffunktion des Treibers auf, bevor die EvtDeviceD0Entry Rückruffunktion aufgerufen wird.

Die EvtDevicePrepareHardware Rückruffunktion greift auf die rohen und übersetzten Hardwareressourcen des Geräts mithilfe der ResourcesRaw und ResourcesTranslated verarbeitet, die es empfängt. Die Rückruffunktion kann WdfCmResourceListGetCount- und WdfCmResourceListGetDescriptor- aufrufen, um die Ressourcenlisten zu durchlaufen. Diese Rückruffunktion kann die Ressourcenlisten nicht ändern.

Weitere Informationen zu Ressourcenlisten und der Reihenfolge, in der die Ressourcen angezeigt werden, finden Sie unter rohen und übersetzten Hardwareressourcen.

In der Regel führt die EvtDevicePrepareHardware Rückruffunktion des Treibers bei Bedarf die folgenden Aktionen aus:

  • Ordnet physische Speicheradressen virtuellen Adressen zu, damit der Treiber auf arbeitsspeicher zugreifen kann, der dem Gerät zugewiesen ist
  • Bestimmt die Revisionsnummer des Geräts.
  • Konfiguriert USB-Geräte
  • Ruft treiberdefinierte Schnittstellen von anderen Treibern ab.
Optional kann die EvtDevicePrepareHardware Rückruffunktion des Treibers eine Arbeitsaufgabe in die Warteschlange stellen, um andere zeitintensive Konfigurationsaufgaben auszuführen. Die Verwendung einer Arbeitsaufgabe für solche Vorgänge kann dazu beitragen, dass die Startzeit Ihres Geräts die Startzeit des Systems nicht erhöht. Weitere Informationen finden Sie unter Verwenden von Framework-Arbeitselementen.

In der Regel sollten alle anderen Hardwareinitialisierungsvorgänge, einschließlich des Ladens der Firmware, jedes Mal ausgeführt werden, wenn das Gerät in den Arbeitszustand (D0) wechselt und daher in der EvtDeviceD0Entry- Rückruffunktion des Treibers stattfinden sollte.

Die ResourcesRaw und ResourcesTranslated behandelt, dass die EvtDevicePrepareHardware- Rückruffunktion gültig bleibt, bis die EvtDeviceReleaseHardware- Rückruffunktion des Treibers zurückgegeben wird.

Weitere Informationen zu Hardwareressourcen finden Sie unter Hardwareressourcen für Framework-Based Drivers.

Weitere Informationen dazu, wann das Framework diese Rückruffunktion aufruft, finden Sie unter PnP- und Power Management-Szenarien.

Weitere Informationen zu Treibern, die diese Rückruffunktion bereitstellen, finden Sie unter Unterstützen von PnP und Power Management in Funktionstreibern.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdfdevice.h (einschließen Wdf.h)
IRQL- PASSIVE_LEVEL

Siehe auch

EvtDeviceReleaseHardware