Fungsi IoReportTargetDeviceChange (wdm.h)

IoReportTargetDeviceChange rutin memberi tahu manajer PnP bahwa peristiwa kustom telah terjadi pada perangkat.

Sintaks

NTSTATUS IoReportTargetDeviceChange(
  [in] PDEVICE_OBJECT PhysicalDeviceObject,
  [in] PVOID          NotificationStructure
);

Parameter

[in] PhysicalDeviceObject

Arahkan ke PDO perangkat yang sedang dilaporkan.

[in] NotificationStructure

Penunjuk ke struktur TARGET_DEVICE_CUSTOM_NOTIFICATION yang disediakan penelepon yang menjelaskan peristiwa kustom. Manajer PnP mengirimkan struktur ini ke driver yang terdaftar untuk pemberitahuan peristiwa.

NotificationStructure. FileObject harus NULL. NotificationStructure. Peristiwa harus berisi GUID kustom untuk peristiwa tersebut. Bidang lain dari NotificationStructure harus diisi sebagaimana mestinya untuk peristiwa kustom.

Manajer PnP mengisi NotificationStructure. Bidang FileObject saat mengirim pemberitahuan ke pendaftar.

Nilai kembali

IoReportTargetDeviceChange mengembalikan STATUS_SUCCESS atau status kesalahan yang sesuai. Kemungkinan nilai status kesalahan mencakup yang berikut ini.

Menampilkan kode Deskripsi
STATUS_INVALID_DEVICE_REQUEST
Pemanggil menentukan peristiwa PnP sistem, seperti GUID_TARGET_DEVICE_QUERY_REMOVE. Rutinitas ini hanya untuk peristiwa kustom.

Keterangan

Setelah IoReportTargetDeviceChange memberi tahu manajer PnP bahwa peristiwa kustom telah terjadi pada perangkat, manajer PnP mengirimkan pemberitahuan peristiwa ke driver yang terdaftar untuk pemberitahuan pada perangkat. Jangan gunakan rutinitas ini untuk melaporkan peristiwa PnP sistem, seperti GUID_TARGET_DEVICE_REMOVE_COMPLETE.

Driver yang menentukan peristiwa perangkat kustom memanggil IoReportTargetDeviceChange untuk memberi tahu manajer PnP bahwa peristiwa kustom telah terjadi. Pemberitahuan kustom dapat digunakan untuk peristiwa seperti perubahan label volume.

Driver harus memanggil bentuk asinkron dari rutinitas ini, IoReportTargetDeviceChangeAsynchronous, alih-alih rutinitas ini, untuk mencegah kebuntuan.

Komponen mode kernel tertentu dapat memanggil rutinitas sinkron ini. Misalnya, sistem file dapat memanggil IoReportTargetDeviceChange untuk melaporkan peristiwa kustom "turun dari volume" ketika komponen mencoba membuka volume untuk akses eksklusif. Klien yang mendaftar untuk pemberitahuan pada volume sistem file berhati-hati untuk tidak meminta pembukaan eksklusif dalam rutinitas panggilan balik pemberitahuan PnP.

Struktur pemberitahuan kustom berisi peristiwa yang ditentukan driver dengan GUID-nya sendiri. Penulis driver dapat menghasilkan GUID dengan Uuidgen.exe atau Guidgen.exe (yang disertakan dalam Microsoft Windows SDK).

Penelepon IoReportTargetDeviceChange harus berjalan di IRQL = PASSIVE_LEVEL dalam konteks utas sistem. Untuk melaporkan perubahan perangkat target dari PASSIVE_LEVEL IRQL > , panggil IoReportTargetDeviceChangeAsynchronous.

IoReportTargetDeviceChange tidak didukung pada Windows 98/Me; mengembalikan STATUS_NOT_IMPLEMENTED.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia dimulai dengan Windows 2000.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (lihat bagian Keterangan)
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Lihat juga

IoReportTargetDeviceChangeAsynchronous

TARGET_DEVICE_CUSTOM_NOTIFICATION