Bagikan melalui


EVT_WDF_DEVICE_RELATIONS_QUERY fungsi panggilan balik (wdfdevice.h)

[Berlaku untuk KMDF saja]

Panggilan balik peristiwa EvtDeviceRelationsQuery driver melaporkan perubahan dalam hubungan di antara perangkat yang didukung oleh driver.

Sintaks

EVT_WDF_DEVICE_RELATIONS_QUERY EvtWdfDeviceRelationsQuery;

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

Parameter

[in] Device

Handel ke objek perangkat kerangka kerja.

[in] RelationType

Nilai enumerator jenis DEVICE_RELATION_TYPE. Enumerasi DEVICE_RELATION_TYPE didefinisikan dalam wdm.h.

Nilai kembali

Tidak ada

Keterangan

Untuk mendaftarkan fungsi panggilan balik EvtDeviceRelationsQuery , driver harus memanggil WdfDeviceInitSetPnpowerEventCallbacks.

Sebagian besar driver berbasis kerangka kerja tidak perlu menyediakan fungsi panggilan balik ini.

Selama inisialisasi sistem, manajer Plug and Play menghitung semua perangkat pada sistem dengan mengirim permintaan IRP_MN_QUERY_DEVICE_RELATIONS ke tumpukan driver. Jika driver berbasis kerangka kerja telah mendaftarkan fungsi panggilan balik EvtDeviceRelationsQuery , kerangka kerja akan memanggilnya. Driver fungsi untuk bus harus melaporkan semua perangkat anak yang terpasang pada bus.

Selain itu, setelah kerangka kerja memanggil rutinitas IoInvalidateDeviceRelations untuk melaporkan hubungan yang berubah di antara perangkat di bus pengemudi, manajer Plug and Play mengirimkan permintaan IRP_MN_QUERY_DEVICE_RELATIONS lain ke tumpukan driver. Kerangka kerja kemudian memanggil fungsi panggilan balik EvtDeviceRelationsQuery driver sehingga driver dapat memberikan detail tentang perubahan tersebut.

Jenis pekerjaan yang harus dilakukan driver tergantung pada nilai yang diterima untuk parameter RelationType . Nilainya bisa menjadi salah satu dari berikut ini:

BusRelations

    Sebagian besar driver berbasis kerangka kerja tidak melaporkan hubungan bus dalam fungsi panggilan balik EvtDeviceRelationsQuery. Sebagai gantinya, driver mengikuti panduan yang dijelaskan dalam Menghitung Perangkat di Bus.

EjectionRelations

    Sebagian besar driver berbasis kerangka kerja tidak melaporkan hubungan ejeksi dalam fungsi panggilan balik EvtDeviceRelationsQuery. Sebagai gantinya, driver untuk bus perangkat memanggil WdfPdoAddEjectionRelationsPhysicalDevice dan WdfPdoRemoveEjectionRelationsPhysicalDevice.

RemovalRelations

    Sebagian besar driver berbasis kerangka kerja tidak melaporkan hubungan penghapusan dalam fungsi panggilan balik EvtDeviceRelationsQuery. Sebagai gantinya, driver memanggil WdfDeviceAddRemovalRelationsPhysicalDevice dan WdfDeviceRemoveRemovalRelationsPhysicalDevice.

TargetDeviceRelation

    Driver berbasis kerangka kerja tidak perlu melaporkan hubungan target perangkat. Sebaliknya, kerangka kerja menangani permintaan ini.

Kerangka kerja dapat memanggil fungsi panggilan balik EvtDeviceRelationsQuery dengan nilai RelationTypeEjectionRelations atau RemovalRelations meskipun perangkat sedang dihapus.

Persyaratan

Persyaratan Nilai
Target Platform Universal
Versi KMDF minimum 1,0
Header wdfdevice.h (termasuk Wdf.h)
IRQL PASSIVE_LEVEL