Fungsi IoWMIExecuteMethod (wdm.h)

Rutinitas IoWMIExecuteMethod menjalankan metode kelas WMI pada instans blok data WMI yang ditentukan.

Sintaks

NTSTATUS IoWMIExecuteMethod(
  [in]      PVOID           DataBlockObject,
  [in]      PUNICODE_STRING InstanceName,
  [in]      ULONG           MethodId,
  [in]      ULONG           InBufferSize,
  [in, out] PULONG          OutBufferSize,
  [in, out] PUCHAR          InOutBuffer
);

Parameter

[in] DataBlockObject

Penunjuk ke objek blok data WMI. Pemanggil membuka objek blok data untuk kelas WMI dengan IoWMIOpenBlock. Objek harus dibuka dengan hak akses WMIGUID_EXECUTE.

[in] InstanceName

Menentukan nama instans blok data. Nilai ini sesuai dengan nilai properti InstanceName untuk blok.

[in] MethodId

Menentukan ID item metode untuk metode yang akan ditetapkan. Nilai parameter ini sesuai dengan nilai yang dideklarasikan dalam kualifikasi WmiMethodId untuk metode .

[in] InBufferSize

Menentukan ukuran, dalam byte, data input untuk metode . Data input aktual diteruskan dalam buffer yang diarahkan oleh parameter InOutBuffer .

[in, out] OutBufferSize

Penunjuk ke ULONG yang menentukan ukuran yang diharapkan, byte, dari output data dengan metode . Data output aktual dikembalikan dalam buffer yang diacu oleh parameter InOutBuffer . Jika rutinitas berhasil, ia memperbarui lokasi memori untuk menentukan jumlah byte yang benar-benar disimpan di InOutBuffer. Jika rutinitas gagal dengan STATUS_BUFFER_TOO_SMALL, itu mengembalikan jumlah byte yang diperlukan untuk mengembalikan data.

[in, out] InOutBuffer

Arahkan ke buffer tempat pemanggil meneruskan data input metode WMI, dan menerima data output metode WMI.

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 diacu oleh parameter InOutBuffer . Rutinitas juga mengembalikan ukuran, dalam byte, dari data yang dikembalikan di lokasi memori yang ditujukkan oleh parameter OutBufferSize .
STATUS_WMI_GUID_NOT_FOUND
Tidak ada driver yang mengimplementasikan kelas WMI.
STATUS_WMI_INSTANCE_NOT_FOUND
Tidak ada driver yang mengimplementasikan instans kelas WMI dengan properti InstanceName yang sama dengan nilai yang ditentukan dalam parameter InstanceName .
STATUS_WMI_ITEMID_NOT_FOUND
Kelas WMI tidak berisi metode dengan ID metode yang sama dengan nilai MethodId.
STATUS_BUFFER_TOO_SMALL
Buffer yang diteruskan oleh pemanggil di parameter OutBuffer terlalu kecil. Rutinitas mengembalikan ukuran buffer yang diperlukan di lokasi memori yang ditunjukkan oleh parameter InOutBufferSize .
STATUS_WMI_GUID_DISCONNECTED
GUID WMI tidak lagi tersedia atau tidak pernah tersedia.

Keterangan

IoWMIExecuteMethod menentukan driver mana yang mungkin mendukung kelas WMI dan nama instans yang ditentukan. Ini mengeluarkan permintaan IRP_MN_EXECUTE_METHOD untuk setiap driver tersebut. Driver yang mengekspor instans blok data dengan properti InstanceName yang cocok kemudian menjalankan metode WMI yang ditentukan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tersedia di Windows XP dan versi yang lebih baru dari sistem operasi Windows.
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_EXECUTE_METHOD

IoWMIOpenBlock