Fungsi WdfWmiProviderCreate (wdfwmi.h)
[Berlaku untuk KMDF saja]
Metode WdfWmiProviderCreate membuat objek penyedia WMI yang mewakili blok data WMI.
Sintaks
NTSTATUS WdfWmiProviderCreate(
[in] WDFDEVICE Device,
[in] PWDF_WMI_PROVIDER_CONFIG WmiProviderConfig,
[in, optional] PWDF_OBJECT_ATTRIBUTES ProviderAttributes,
[out] WDFWMIPROVIDER *WmiProvider
);
Parameter
[in] Device
Handel ke objek perangkat kerangka kerja yang akan menjadi objek induk objek penyedia baru. Objek perangkat tidak dapat menjadi objek perangkat kontrol.
[in] WmiProviderConfig
Penunjuk ke struktur WDF_WMI_PROVIDER_CONFIG yang diinisialisasi pemanggil yang berisi informasi konfigurasi tentang blok data WMI.
[in, optional] ProviderAttributes
Penunjuk ke struktur WDF_OBJECT_ATTRIBUTES yang dialokasikan penelepon yang berisi atribut objek yang disediakan driver untuk objek penyedia WMI baru. (Anggota ParentObject struktur harus NULL.) Parameter ini bersifat opsional dan dapat WDF_NO_OBJECT_ATTRIBUTES.
[out] WmiProvider
Penunjuk ke lokasi yang menerima handel ke objek penyedia WMI baru.
Nilai kembali
WdfWmiProviderCreate mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Parameter yang tidak valid terdeteksi. |
|
Ukuran struktur WDF_WMI_PROVIDER_CONFIG yang ditujukan parameter WmiProviderConfig salah. |
|
Memori tidak cukup untuk menyelesaikan operasi. |
|
Driver telah memanggil WdfWmiProviderCreate untuk perangkat yang ditentukan dan blok data WMI. |
Untuk daftar nilai pengembalian lain yang mungkin dikembalikan oleh metode WdfWmiProviderCreate , lihat Kesalahan Pembuatan Objek Kerangka Kerja.
Metode ini juga mungkin mengembalikan nilai NTSTATUS lainnya.
Pemeriksaan bug terjadi jika driver menyediakan handel objek yang tidak valid.
Keterangan
Driver Anda harus memanggil WdfWmiProviderCreate untuk membuat objek penyedia WMI jika driver akan membuat beberapa instans penyedia. Jika driver hanya akan membuat satu instans penyedia, driver dapat memanggil WdfWmiInstanceCreate tanpa terlebih dahulu memanggil WdfWmiProviderCreate.
Driver dapat memanggil WdfWmiProviderCreate kapan saja, tetapi driver biasanya memanggil WdfWmiProviderCreate dari dalam fungsi panggilan balik EvtDriverDeviceAdd mereka.
Induk dari setiap objek penyedia WMI adalah objek perangkat kerangka kerja perangkat. Driver tidak dapat mengubah induk ini, dan anggota ParentObject atau struktur WDF_OBJECT_ATTRIBUTES harus NULL.
Setelah driver memanggil WdfWmiProviderCreate, driver dapat memanggil WdfWmiProviderGetDevice untuk mengambil handel ke objek perangkat induk objek penyedia.
Setelah driver membuat objek penyedia WMI, driver tidak dapat menghapus objek. Kerangka kerja menghapus objek penyedia WMI perangkat saat menghapus objek perangkat kerangka kerja yang mewakili perangkat. Objek penyedia WMI menggunakan sumber daya sistem minimal.
Untuk informasi selengkapnya tentang metode WdfWmiProviderCreate , lihat Mendukung WMI di driver Framework-Based.
Contoh
Contoh kode berikut menginisialisasi struktur WDF_WMI_PROVIDER_CONFIG dan memanggil WdfWmiProviderCreate.
WDF_WMI_PROVIDER_CONFIG config;
WDFWMIPROVIDER provider;
GUID providerGuid = MY_WMI_DATA_BLOCK_GUID;
NTSTATUS status;
WDF_WMI_PROVIDER_CONFIG_INIT(
&config,
providerGuid
);
config.Flags = WdfWmiProviderTracing;
config.EvtWmiProviderFunctionControl = MyProviderFunctionControl;
status = WdfWmiProviderCreate(
Device,
&config,
WDF_NO_OBJECT_ATTRIBUTES,
&provider
);
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Versi KMDF minimum | 1,0 |
Header | wdfwmi.h (termasuk Wdf.h) |
Pustaka | Wdf01000.sys (lihat Penerapan Versi Pustaka Kerangka Kerja.) |
IRQL | <=DISPATCH_LEVEL |
Aturan kepatuhan DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
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