Condividi tramite


EVT_WDF_DEVICE_RELATIONS_QUERY funzione di callback (wdfdevice.h)

[Si applica solo a KMDF]

Il callback degli eventi EvtDeviceRelationsQuery di un driver segnala le modifiche nelle relazioni tra i dispositivi supportati dal driver.

Sintassi

EVT_WDF_DEVICE_RELATIONS_QUERY EvtWdfDeviceRelationsQuery;

void EvtWdfDeviceRelationsQuery(
  [in] WDFDEVICE Device,
  [in] DEVICE_RELATION_TYPE RelationType
)
{...}

Parametri

[in] Device

Handle per un oggetto dispositivo framework.

[in] RelationType

Valore dell'enumeratore tipizzato DEVICE_RELATION_TYPE. L'enumerazione DEVICE_RELATION_TYPE è definita in wdm.h.

Valore restituito

nessuno

Osservazioni

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

La maggior parte dei driver basati su framework non deve fornire questa funzione di callback.

Durante l'inizializzazione del sistema, il gestore Plug and Play enumera tutti i dispositivi nel sistema inviando una richiesta di IRP_MN_QUERY_DEVICE_RELATIONS allo stack di driver. Se un driver basato su framework ha registrato una funzione di callback EvtDeviceRelationsQuery , il framework lo chiama. Il driver di funzione per il bus deve segnalare tutti i dispositivi figlio collegati al bus.

Inoltre, dopo che il framework chiama la routine IoInvalidateDeviceRelations per segnalare una relazione modificata tra i dispositivi nel bus del driver, il responsabile Plug and Play invia un'altra richiesta IRP_MN_QUERY_DEVICE_RELATIONS allo stack di driver. Il framework chiama quindi la funzione di callback EvtDeviceRelationsQuery del driver in modo che il driver possa fornire dettagli sulla modifica.

Il tipo di lavoro che un driver deve eseguire dipende dal valore ricevuto per il parametro RelationType . I possibili valori sono i seguenti:

BusRelations

    La maggior parte dei driver basati su framework non segnala le relazioni tra bus in una funzione di callback EvtDeviceRelationsQuery. I driver seguono invece le linee guida descritte in Enumerazione dei dispositivi in un bus.

EjectionRelations

    La maggior parte dei driver basati su framework non segnala le relazioni di espulsione in una funzione di callback EvtDeviceRelationsQuery. Al contrario, il driver del bus del dispositivo chiama WdfPdoAddEjectionRelationsPhysicalDevice e WdfPdoRemoveEjectionRelationsPhysicalDevice.

RemovalRelations

    La maggior parte dei driver basati su framework non segnala le relazioni di rimozione in una funzione di callback EvtDeviceRelationsQuery. I driver chiamano invece WdfDeviceAddRemovalRelationsPhysicalDevice e WdfDeviceRemoveRemovalRelationsPhysicalDevice.

TargetDeviceRelation

    I driver basati su framework non devono segnalare la relazione di destinazione di un dispositivo. Il framework gestisce invece questa richiesta.

Il framework può chiamare la funzione di callback EvtDeviceRelationsQuery con un valore RelationType di EjectionRelations o RemoveRelations anche se il dispositivo viene rimosso.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1.0
Intestazione wdfdevice.h (include Wdf.h)
IRQL PASSIVE_LEVEL