Fungsi IoWMIQuerySingleInstanceMultiple (wdm.h)

Rutinitas IoWMIQuerySingleInstanceMultiple mengembalikan semua instans blok data WMI yang mengimplementasikan kelas WMI yang ditentukan dengan nama instans yang ditentukan.

Sintaks

NTSTATUS IoWMIQuerySingleInstanceMultiple(
  [in]            PVOID           *DataBlockObjectList,
  [in]            PUNICODE_STRING InstanceNames,
  [in]            ULONG           ObjectCount,
  [in, out]       PULONG          InOutBufferSize,
  [out, optional] PVOID           OutBuffer
);

Parameter

[in] DataBlockObjectList

Arahkan ke array pointer objek blok data WMI. Pemanggil membuka objek blok data untuk setiap kelas WMI dengan rutinitas IoWMIOpenBlock . Setiap objek harus dibuka dengan hak akses WMIGUID_QUERY.

[in] InstanceNames

Penunjuk ke array struktur UNICODE_STRING yang berisi nama instans. Nama instans nth dalam array sesuai dengan nilai properti InstanceName untuk kelas WMI nth yang ditentukan dalam array yang ditujukkan oleh parameter DataBlockObjectList .

[in] ObjectCount

Menentukan jumlah entri dalam array yang diteruskan dalam parameter DataBlockObjectList dan InstanceNames .

[in, out] InOutBufferSize

Penunjuk ke lokasi memori yang menentukan ukuran buffer yang diteruskan dalam parameter OutBuffer . Jika rutinitas berhasil, ia memperbarui lokasi memori untuk menentukan jumlah byte yang benar-benar disimpan di OutBuffer. Jika rutinitas gagal dengan STATUS_BUFFER_TOO_SMALL, rutin mengembalikan jumlah byte yang diperlukan untuk mengembalikan data.

[out, optional] OutBuffer

Arahkan ke buffer tempat rutin mengembalikan data WMI. Rutinitas mengembalikan urutan struktur WNODE_SINGLE_INSTANCE berukuran variabel, satu untuk setiap instans blok data. Anggota WnodeHeader.Linkage dari setiap struktur WNODE_SINGLE_INSTANCE berisi offset dari awal WNODE_SINGLE_INSTANCE saat ini hingga awal WNODE_SINGLE_INSTANCE berikutnya. Blok akhir dalam rantai memiliki WnodeHeader.Linkage yang diatur ke nol. Setiap instans blok data yang berbeda sesuai dengan satu kelas WMI dan nama instans yang cocok. OutBuffer harus menunjuk ke buffer yang dialokasikan dari kumpulan yang tidak dipagasi.

Nilai kembali

Rutinitas mengembalikan kode NTSTATUS. Kemungkinan nilai yang dikembalikan meliputi:

Menampilkan kode Deskripsi
STATUS_SUCCESS
Operasi berhasil. Rutinitas mengembalikan data WMI dalam buffer yang ditujukkan oleh parameter OutBuffer . Rutinitas juga mengembalikan ukuran, dalam byte, dari data yang dikembalikan di lokasi memori yang ditujukkan oleh parameter InOutBufferSize .
STATUS_BUFFER_TOO_SMALL
Buffer yang diteruskan oleh pemanggil dalam parameter OutBuffer terlalu kecil. Rutinitas mengembalikan ukuran buffer yang diperlukan di lokasi memori yang ditunjukkan oleh parameter InOutBufferSize .

Keterangan

IoWMIQuerySingleInstanceMultiple menentukan driver mana yang mungkin mendukung kelas dan nama instans WMI yang ditentukan, dan mengeluarkan permintaan IRP_MN_QUERY_SINGLE_INSTANCE ke setiap driver tersebut. Setiap driver yang mengekspor instans blok data dengan properti InstanceName yang cocok mengembalikan data yang sesuai.

Jika tidak ada driver yang mengimplementasikan salah satu kelas WMI dan nama instans yang ditentukan, rutinitas akan mengembalikan STATUS_SUCCESS. Ini juga mengembalikan nilai nol di lokasi memori yang diacu oleh parameter InOutBufferSize .

Untuk mengkueri satu kelas WMI dan nama instans, gunakan rutinitas IoWMIQuerySingleInstance . Driver dapat menggunakan rutinitas IoWMISetSingleInstance untuk memperbarui instans kelas.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows XP dan versi sistem operasi Windows yang lebih baru.
Target Platform Universal
Header wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h)
Pustaka NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Lihat juga

IRP_MN_QUERY_SINGLE_INSTANCE

IoWMIOpenBlock

IoWMIQuerySingleInstance

IoWMISetSingleInstance

UNICODE_STRING