Fungsi IoWMIRegistrationControl (wdm.h)

Rutinitas IoWMIRegistrationControl mendaftar atau membatalkan pendaftaran pemanggil sebagai penyedia data WMI untuk objek perangkat tertentu.

Sintaks

NTSTATUS IoWMIRegistrationControl(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] ULONG          Action
);

Parameter

[in] DeviceObject

Penunjuk ke objek perangkat. Objek ini adalah struktur sistem DEVICE_OBJECT .

[in] Action

Tindakan yang harus dilakukan WMI. Tindakan yang diminta ditunjukkan oleh salah satu nilai berikut.

Nilai tindakan Makna
WMIREG_ACTION_REGISTER Menentukan bahwa WMI harus mendaftarkan pemanggil sebagai penyedia WMI untuk DeviceObject. Ini akan mengakibatkan WMI mengirim permintaan IRP_MN_REGINFO atau IRP_MN_REGINFO_EX ke driver.
WMIREG_ACTION_DEREGISTER Menentukan bahwa WMI harus menghapus pemanggil dari daftar penyedia WMI untuk DeviceObject.
WMIREG_ACTION_REREGISTER Menentukan bahwa WMI harus membatalkan pendaftaran driver lalu mendaftarkan (mendaftarkan ulang) driver. Mendaftarkan ulang driver menghasilkan WMI mengirim permintaan IRP_MN_REGINFO atau IRP_MN_REGINFO_EX ke driver.
WMIREG_ACTION_UPDATE_GUIDS Menentukan bahwa WMI harus mengkueri ulang driver untuk daftar pengidentifikasi GUID baru yang menyediakan data untuknya. Ini akan mengakibatkan WMI mengirim permintaan IRP_MN_REGINFO atau IRP_MN_REGINFO_EX ke driver.

Nilai kembali

IoWMIRegistrationControl mengembalikan kode status dari daftar berikut:

Menampilkan kode Deskripsi
STATUS_SUCCESS
Menunjukkan bahwa WMI menyelesaikan tindakan yang diminta tanpa kesalahan.
STATUS_INVALID_PARAMETER
Menunjukkan bahwa tindakan, yang ditentukan dalam Tindakan, tidak valid.
STATUS_XXX
Menunjukkan bahwa permintaan gagal karena alasan yang ditentukan oleh nilai NTSTATUS. Lihat Ntstatus.h untuk informasi terperinci untuk kode pengembalian status aktual.

Keterangan

Setelah driver memanggil IoWMIRegistrationControl, WMI mengirimkan permintaan IRP_MN_REGINFO atau IRP_MN_REGINFO_EX kepada driver sehingga driver dapat memberikan informasi kepada WMI. Untuk informasi selengkapnya, lihat Mendaftar sebagai Penyedia Data WMI.

Jika penelepon menentukan WMIREG_ACTION_DEREGISTER untuk Tindakan, IoWMIRegistrationControl menyebabkan utas panggilan diblokir hingga semua permintaan IRP_MJ_SYSTEM_CONTROL yang sebelumnya dikirim ke objek perangkat yang ditentukan telah selesai. Dalam kasus seperti itu, jika driver memanggil IoWMIRegistrationControl dalam rutinitas pengiriman untuk permintaan IRP_MJ_SYSTEM_CONTROL , utas panggilan akan mengalami kebuntuan.

Jika perangkat dihapus tiba-tiba (misalnya, dalam penghapusan mendadak), menyebabkan manajer PnP mengirim IRP IRP_MN_SURPRISE_REMOVAL , driver harus memanggil IoWMIRegistrationControl dan menentukan WMIREG_ACTION_DEREGISTER dalam Tindakan dalam panggilan. Perhatikan bahwa jika driver memanggil IoWMIRegistrationControl dengan Action diatur ke WMIREG_ACTION_DEREGISTER sebagai respons terhadap IRP IRP_MN_SURPRISE_REMOVAL , driver tidak boleh melakukan panggilan yang sama ke IoWMIRegistrationControl sebagai respons terhadap IRP IRP_MN_REMOVE_DEVICE .

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
Aturan kepatuhan DDI HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm)

Lihat juga

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IRP_MN_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL