Condividi tramite


EVT_WDF_DEVICE_PREPARE_HARDWARE funzione di callback (wdfdevice.h)

[Si applica a KMDF e UMDF]

Il driver EvtDevicePrepareHardware funzione di callback degli eventi esegue tutte le operazioni necessarie per rendere un dispositivo accessibile al driver.

Sintassi

EVT_WDF_DEVICE_PREPARE_HARDWARE EvtWdfDevicePrepareHardware;

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

Parametri

[in] Device

Handle per un oggetto dispositivo framework.

[in] ResourcesRaw

Handle per un oggetto elenco risorse framework che identifica le risorse hardware non elaborate assegnate dal gestore Plug and Play al dispositivo.

[in] ResourcesTranslated

Handle per un oggetto elenco risorse framework che identifica le risorse hardware tradotte assegnate dal gestore Plug and Play al dispositivo.

Valore restituito

Se l'EvtDevicePrepareHardware funzione di callback non rileva errori, deve restituire STATUS_SUCCESS o un altro valore di stato per cui NT_SUCCESS(stato) è uguale TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS( stato) è uguale a FALSE. Non restituire STATUS_NOT_SUPPORTED.

Se NT_SUCCESS(stato) è uguale a FALSE, il framework chiama la funzione di callback evtDeviceReleaseHard ware del driver.

Per altre informazioni sui valori restituiti di questa funzione di callback, vedere Segnalazione errori del dispositivo.

Osservazioni

Per registrare un EvtDevicePrepareHardware funzione di callback, un driver deve chiamare WdfDeviceInitSetPnpPowerEventCallbacks.

Se il driver ha registrato un EvtDevicePrepareHardware funzione di callback per un dispositivo, il framework chiama la funzione dopo che il gestore Plug and Play ha assegnato risorse hardware al dispositivo e dopo che il dispositivo ha immesso lo stato D0 non inizializzato. Il gestore Plug and Play avvia sempre un dispositivo padre prima di avviare i dispositivi figlio del dispositivo.

Il framework chiama la funzione di callback del driver EvtDevicePrepareHardware prima di chiamare la funzione di callback del driver EvtDeviceD0Entry.

La funzione di callback EvtDevicePrepareHardware accede alle risorse hardware non elaborate e tradotte del dispositivo usando le risorse hardware ResourcesRaw e ResourcesTranslated gestite che riceve. La funzione di callback può chiamare WdfCmResourceListGetCount e WdfCmResourceListGetDescriptor per attraversare gli elenchi di risorse. Questa funzione di callback non può modificare gli elenchi di risorse.

Per altre informazioni sugli elenchi di risorse e sull'ordine in cui vengono visualizzate le risorse, vedere risorse hardware non elaborate e tradotte.

In genere, il driver EvtDevicePrepareHardware funzione di callback esegue le operazioni seguenti, se necessario:

  • Esegue il mapping degli indirizzi di memoria fisica agli indirizzi virtuali in modo che il driver possa accedere alla memoria assegnata al dispositivo
  • Determina il numero di revisione del dispositivo
  • Configura i dispositivi USB
  • Ottiene interfacce definite dal driver da altri driver
Facoltativamente, il driver EvtDevicePrepareHardware funzione di callback potrebbe accodare un elemento di lavoro per completare qualsiasi altra attività di configurazione a elevato utilizzo di tempo. L'uso di un elemento di lavoro per tali operazioni può contribuire a garantire che l'ora di avvio del dispositivo non aumenti il tempo di avvio del sistema. Per altre informazioni, vedere Using Framework Work Items.

In genere, tutte le altre operazioni di inizializzazione hardware, incluso il firmware di caricamento, devono essere eseguite ogni volta che il dispositivo entra nello stato di lavoro (D0) e deve quindi avvenire nel EvtDeviceD0Entry funzione di callback.

Il ResourcesRaw e ResourcesTranslated gestisce che la funzione di callback EvtDevicePrepareHardware rimane valida fino a quando la funzione di callback del driver EvtDeviceReleaseHardware restituisce.

Per altre informazioni sulle risorse hardware, vedere Risorse hardware per driver Framework-Based.

Per altre informazioni sui casi in cui il framework chiama questa funzione di callback, vedere scenari di risparmio energia e PnP.

Per altre informazioni sui driver che forniscono questa funzione di callback, vedere Supporto di PnP e risparmio energia nei driver di funzione.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
versione minima di KMDF 1.0
versione minima di UMDF 2.0
intestazione wdfdevice.h (include Wdf.h)
IRQL PASSIVE_LEVEL

Vedere anche

EvtDeviceReleaseHardware