Struktur WMIREGGUIDW (wmistr.h)
Struktur WMIREGGUID berisi informasi pendaftaran baru atau yang diperbarui untuk blok data atau blok peristiwa.
Sintaks
typedef struct {
GUID Guid;
ULONG Flags;
ULONG InstanceCount;
union {
ULONG InstanceNameList;
ULONG BaseNameOffset;
ULONG_PTR Pdo;
ULONG_PTR InstanceInfo;
} DUMMYUNIONNAME;
} WMIREGGUIDW, *PWMIREGGUIDW;
Anggota
Guid
Menentukan GUID yang mewakili blok untuk mendaftar atau memperbarui.
Flags
Menunjukkan karakteristik blok untuk mendaftar atau memperbarui.
Jika blok didaftarkan dengan nama instans statis, driver menetapkan salah satu bendera berikut:
WMIREG_FLAG_INSTANCE_LIST
Menunjukkan bahwa driver menyediakan nama instans statis untuk blok ini dalam daftar statis setelah struktur WMIREGINFO dalam buffer di IrpStack-Parameters.WMI.Buffer>. Jika bendera ini diatur, InstanceNameList adalah offset dalam byte dari awal struktur WMIREGINFO yang berisi WMIREGGUID ini ke serangkaian instanceCount yang berdekatan dihitung string Unicode.
WMIREG_FLAG_INSTANCE_BASENAME
Meminta WMI untuk menghasilkan nama instans statis dari nama dasar yang disediakan oleh driver mengikuti struktur WMIREGINFO dalam buffer di IrpStack-Parameters.WMI.Buffer>. WMI menghasilkan nama instans dengan menambahkan penghitung ke nama dasar. Jika bendera ini diatur, BaseNameOffset adalah offset dalam byte dari awal struktur WMIREGINFO yang berisi WMIREGGUID ini ke satu string Unicode yang dihitung yang berfungsi sebagai nama dasar.
WMIREG_FLAG_INSTANCE_PDO
Meminta WMI untuk menghasilkan nama instans statis dari ID instans perangkat untuk PDO. Jika bendera ini diatur, InstanceInfo menunjuk ke PDO yang diteruskan ke rutinitas AddDevice driver. WMI menghasilkan nama instans dari jalur instans perangkat PDO. Menggunakan jalur instans perangkat sebagai dasar untuk nama instans statis efisien karena nama tersebut dijamin unik. WMI secara otomatis menyediakan nama "ramah" untuk instans sebagai item di blok data yang dapat dikueri oleh konsumen data.
Jika blok didaftarkan dengan nama instans dinamis, WMIREG_FLAG_INSTANCE_LIST, WMIREG_FLAG_INSTANCE_BASENAME, dan WMIREG_FLAG_INSTANCE_PDO harus jelas.
Driver mungkin juga mengatur satu atau beberapa bendera berikut:
WMIREG_FLAG_EVENT_ONLY_GUID
Blok dapat diaktifkan atau dinonaktifkan sebagai peristiwa saja, dan tidak dapat dikueri atau diatur. Jika bendera ini jelas, blok juga dapat dikueri atau diatur.
WMIREG_FLAG_EXPENSIVE
Meminta WMI untuk mengirim permintaan IRP_MN_ENABLE_COLLECTION pertama kali konsumen data membuka blok data dan permintaan IRP_MN_DISABLE_COLLECTION ketika konsumen data terakhir menutup blok data. Ini disarankan jika mengumpulkan data tersebut memengaruhi performa, karena driver tidak perlu mengumpulkan data sampai konsumen data secara eksplisit memintanya dengan membuka blok.
WMIREG_FLAG_REMOVE_GUID
Meminta WMI untuk menghapus dukungan untuk blok ini. Bendera ini hanya valid sebagai respons terhadap permintaan untuk memperbarui informasi pendaftaran (IRP_MN_REGINFO atau IRP_MN_REGINFO_EX dengan Parameters.WMI.DataPath diatur ke WMIUPDATE).
WMIREG_FLAG_TRACED_GUID
Blok hanya dapat ditulis ke file log dan hanya dapat diakses melalui rutinitas mode pengguna yang dideklarasikan dalam evntrace.h. Hanya penyedia data mode kernel NT yang mengatur bendera ini.
WMIREG_FLAG_TRACE_CONTROL_GUID
GUID bertindak sebagai GUID kontrol untuk mengaktifkan atau menonaktifkan GUID jejak yang terkait dengannya dalam file MOF. Bendera ini hanya valid jika WMIREG_FLAG_TRACED_GUID juga diatur. Hanya penyedia data mode kernel NT yang mengatur bendera ini.
InstanceCount
Menentukan jumlah nama instans statis yang akan ditentukan untuk blok ini. Jika blok sedang didaftarkan dengan nama instans dinamis, WMI mengabaikan InstanceCount.
DUMMYUNIONNAME
DUMMYUNIONNAME.InstanceNameList
Menunjukkan offset dalam byte dari awal struktur WMIREGINFO yang berisi WMIREGGUID ini ke serangkaian string InstanceCount yang berdekatan dihitung Unicode. Anggota ini hanya valid jika WMIREG_FLAG_INSTANCE_LIST diatur dalam Bendera. Jika blok sedang didaftarkan dengan nama instans dinamis, WMI mengabaikan InstanceNameList.
DUMMYUNIONNAME.BaseNameOffset
Menunjukkan offset dalam byte dari awal struktur WMIREGINFO yang berisi WMIREGGUID ini ke satu string Unicode yang dihitung yang berfungsi sebagai dasar bagi WMI untuk menghasilkan nama instans statis. Anggota ini hanya valid jika WMIREG_FLAG_INSTANCE_BASENAME diatur dalam Bendera. Jika blok sedang didaftarkan dengan nama instans dinamis, WMI mengabaikan BaseNameOffset.
DUMMYUNIONNAME.Pdo
Pointer ke objek perangkat fisik (PDO) diteruskan ke rutinitas AddDevice driver. WMI menggunakan jalur instans perangkat PDO ini sebagai basis untuk menghasilkan nama instans statis. Anggota ini hanya valid jika WMIREG_FLAG_INSTANCE_PDO diatur dalam Bendera. Jika blok sedang didaftarkan dengan nama instans dinamis, WMI mengabaikan Pdo.
DUMMYUNIONNAME.InstanceInfo
Dicadangkan untuk digunakan oleh WMI.
Keterangan
Driver membangun satu atau beberapa struktur WMIREGGUID sebagai respons terhadap permintaan IRP_MN_REGINFO atau IRP_MN_REGINFO_EX untuk mendaftar atau memperbarui bloknya. Driver melewati array struktur tersebut di anggota WmiRegGuid dari struktur WMIREGINFO, yang ditulis driver ke buffer di IrpStack-Parameters.WMI.Buffer>.
Driver dapat mendaftarkan atau memperbarui blok dengan nama instans statis atau dinamis. Nama instans statis memberikan performa terbaik; namun, nama instans dinamis lebih disukai untuk blok data jika jumlah instans atau nama instans sering berubah. Untuk informasi selengkapnya tentang nama instans, lihat Menentukan Nama Instans WMI.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | wmistr.h (termasuk Wmistr.h) |
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