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

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

WMIREGINFO