WMI_FUNCTION_CONTROL_CALLBACK fungsi panggilan balik (wmilib.h)
Rutinitas DpWmiFunctionControl memungkinkan atau menonaktifkan pemberitahuan peristiwa, dan mengaktifkan atau menonaktifkan pengumpulan data untuk blok data yang didaftarkan driver mahal untuk dikumpulkan. Rutinitas ini bersifat opsional.
Sintaks
WMI_FUNCTION_CONTROL_CALLBACK WmiFunctionControlCallback;
NTSTATUS WmiFunctionControlCallback(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp,
[in] ULONG GuidIndex,
[in] WMIENABLEDISABLECONTROL Function,
[in] BOOLEAN Enable
)
{...}
Parameter
[in] DeviceObject
Arahkan ke struktur DEVICE_OBJECT WDM driver.
[in] Irp
Arahkan ke IRP.
[in] GuidIndex
Menentukan blok data dengan memasok indeks berbasis nol ke dalam daftar GUID yang disediakan driver dalam struktur WMILIB_CONTEXT yang diteruskannya ke WmiSystemControl.
[in] Function
Menentukan apa yang harus diaktifkan atau dinonaktifkan. WmiEventControl menunjukkan peristiwa, dan WmiDataBlockControl menunjukkan pengumpulan data untuk blok yang terdaftar mahal untuk dikumpulkan (yaitu, blok yang ditetapkan driver WMIREG_FLAG_EXPENSIVE dalam Bendera struktur WMIGUIDREGINFO yang digunakan untuk mendaftarkan blok).
[in] Enable
Menentukan TRUE untuk mengaktifkan peristiwa atau pengumpulan data, atau FALSE untuk menonaktifkannya.
Nilai kembali
DpWmiFunctionControl mengembalikan STATUS_SUCCESS atau status kesalahan yang sesuai seperti:
Keterangan
WMI memanggil rutinitas DpWmiFunctionControl driver setelah driver memanggil WmiSystemControl sebagai respons terhadap salah satu permintaan berikut:
Jika driver menerapkan rutinitas DpWmiFunctionControl , driver harus menempatkan alamat rutin di anggota WmiFunctionControl dari struktur WMILIB_CONTEXT yang diteruskannya ke WmiSystemControl. Jika driver tidak menerapkan rutinitas DpWmiFunctionControl , driver harus mengatur WmiFunctionControl ke NULL. Dalam kasus terakhir, WMI mengembalikan STATUS_SUCCESS ke pemanggil.
Driver bertanggung jawab untuk memvalidasi semua argumen input. Secara khusus, driver harus melakukan hal berikut:
- Verifikasi bahwa nilai GuidIndex berada di antara nol dan GuidCount-1, berdasarkan anggota GuidCount dari struktur WMILIB_CONTEXT .
- Verifikasi bahwa driver belum menandai blok data yang ditentukan untuk penghapusan. Jika driver baru-baru ini menentukan bendera WMIREG_FLAG_REMOVE_GUID dalam struktur WMIGUIDREGINFO yang terkandung dalam struktur WMILIB_CONTEXT , ada kemungkinan permintaan tambahan tiba sebelum penghapusan terjadi.
Setelah mengaktifkan atau menonaktifkan peristiwa atau pengumpulan data untuk blok tersebut, driver memanggil WmiCompleteRequest untuk menyelesaikan permintaan.
Rutinitas ini dapat dipaginasi.
Untuk informasi selengkapnya tentang menerapkan rutinitas ini, lihat Memanggil WmiSystemControl untuk Menangani IRP WMI.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | wmilib.h (termasuk Wmilib.h) |
IRQL | Dipanggil di PASSIVE_LEVEL. |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk