Bagikan melalui


IRP_MN_DISABLE_COLLECTION

Setiap driver WMI yang mendaftarkan satu atau beberapa blok datanya mahal untuk dikumpulkan harus menangani IRP ini. Driver dapat menangani RUNP WMI baik dengan memanggil WmiSystemControl atau dengan menangani IRP itu sendiri, seperti yang dijelaskan dalam Menangani Permintaan WMI.

Jika driver memanggil WmiSystemControl untuk menangani permintaan IRP_MN_DISABLE_COLLECTION , WMI pada gilirannya memanggil rutinitas DpWmiFunctionControl driver tersebut.

Kode Utama

IRP_MJ_SYSTEM_CONTROL

Ketika Dikirim

WMI mengirimkan IRP ini untuk meminta driver berhenti mengumpulkan data untuk blok data yang didaftarkan driver mahal untuk dikumpulkan dan pengumpulan data mana yang telah diaktifkan.

WMI mengirimkan IRP ini di IRQL = PASSIVE_LEVEL dalam konteks utas arbitrer.

Parameter Input

Parameters.WMI.ProviderId menunjuk ke objek perangkat driver yang harus merespons permintaan. Pointer ini terletak di lokasi tumpukan I/O driver di IRP.

Parameters.WMI.DataPath menunjuk ke GUID yang mengidentifikasi blok data yang akumulasi datanya harus dihentikan.

Parameter Output

Tidak ada.

Blok Status I/O

Jika driver menangani IRP dengan memanggil WmiSystemControl, WMI menetapkan Irp-IoStatus.Status> dan Irp-IoStatus.Information> di blok status I/O.

Jika tidak, driver mengatur Irp-IoStatus.Status> ke STATUS_SUCCESS atau ke status kesalahan yang sesuai seperti berikut ini:

STATUS_WMI_GUID_NOT_FOUND

STATUS_INVALID_DEVICE_REQUEST

Setelah berhasil, driver menetapkan Irp-IoStatus.Information> ke nol.

Operasi

Driver mendaftarkan blok data semahal untuk dikumpulkan dengan mengatur WMIREG_FLAG_EXPENSIVE di anggota Bendera struktur WMIREGGUID atau WMIGUIDREGINFO yang diteruskan driver ke WMI ketika mendaftar atau memperbarui blok data. Driver tidak perlu mengakumulasi data untuk blok seperti itu sampai menerima permintaan eksplisit untuk mengaktifkan pengumpulan.

Jika driver menangani runtime integrasi WMI dengan memanggil WmiSystemControl, yang rutin memanggil rutinitas DpWmiFunctionControl driver, atau mengembalikan STATUS_SUCCESS jika driver tidak menentukan rutinitas.

Jika driver menangani permintaan IRP_MN_DISABLE_COLLECTION itu sendiri, driver harus melakukannya hanya jika Parameters.WMI.ProviderId menunjuk ke objek perangkat yang sama dengan pointer yang diteruskan driver ke IoWMIRegistrationControl. Jika tidak, driver harus meneruskan permintaan ke driver berikutnya yang lebih rendah.

Sebelum menangani permintaan, driver harus menentukan apakah Parameters.WMI.DataPath menunjuk ke GUID yang didukung driver. Jika tidak, driver harus gagal dalam IRP dan mengembalikan STATUS_WMI_GUID_NOT_FOUND. Jika blok data valid tetapi tidak terdaftar di WMIREG_FLAG_EXPENSIVE, driver dapat mengembalikan STATUS_SUCCESS dan tidak mengambil tindakan lebih lanjut.

Tidak perlu bagi driver untuk memeriksa apakah pengumpulan data sudah dinonaktifkan karena WMI mengirim satu permintaan penonaktifan untuk blok data ketika konsumen data terakhir menonaktifkan pengumpulan untuk blok tersebut. WMI tidak akan mengirim permintaan penonaktifan lain tanpa permintaan intervensi untuk diaktifkan.

Persyaratan

Header

Wdm.h (termasuk Wdm.h, Ntddk.h, atau Ntifs.h)

Lihat juga

DpWmiFunctionControl

IoWMIRegistrationControl

IRP_MN_ENABLE_COLLECTION

WMILIB_CONTEXT

WMIREGGUID

WMIGUIDREGINFO

WmiSystemControl