IoWMISetSingleItem 函数 (wdm.h)

IoWMISetSingleItem 例程在数据块实例中设置与指定的 WMI 类和实例名称匹配的单个属性。

语法

NTSTATUS IoWMISetSingleItem(
  [in] PVOID           DataBlockObject,
  [in] PUNICODE_STRING InstanceName,
  [in] ULONG           DataItemId,
  [in] ULONG           Version,
  [in] ULONG           ValueBufferSize,
  [in] PVOID           ValueBuffer
);

参数

[in] DataBlockObject

指向 WMI 数据块对象的指针。 调用方使用 IoWMIOpenBlock 例程打开 WMI 类的数据块对象。 必须使用WMIGUID_SET访问权限打开对象。

[in] InstanceName

指定数据块的实例的名称。 此值对应于块的 InstanceName 属性的值。

[in] DataItemId

指定要设置的属性的数据项 ID。 此参数的值对应于 属性的 WmiDataId 限定符中声明的值。

[in] Version

保留供将来使用。 调用方必须将此参数设置为零。

[in] ValueBufferSize

指定在 ValueBuffer 参数中传递的缓冲区的大小(以字节为单位)。

[in] ValueBuffer

指向缓冲区的指针,该缓冲区包含 DataItemId 参数指定的属性的新值。

返回值

例程返回 NTSTATUS 代码。 可能的返回值包括:

返回代码 说明
STATUS_SUCCESS
操作成功。 WMI 数据块实例中 属性的值将更新为 ValueBuffer 参数指向的缓冲区的内容。
STATUS_WMI_GUID_NOT_FOUND
没有驱动程序实现 WMI 类。
STATUS_WMI_INSTANCE_NOT_FOUND
没有驱动程序实现 WMI 数据块的实例, 其 InstanceName 属性等于 InstanceName 参数中指定的值。
STATUS_WMI_ITEMID_NOT_FOUND
WMI 类不包含数据项 ID 等于 DataItemId 值的属性。
STATUS_WMI_READ_ONLY
数据块中的数据项 ID 是只读的。
STATUS_WMI_SET_FAILURE
实现 WMI 数据块实例的驱动程序无法更新 DataItemId 指定的属性。

注解

IoWMISetSingleItem 确定哪些驱动程序可能支持指定的 WMI 类和实例名称。 它向每个此类驱动程序发出 IRP_MN_CHANGE_SINGLE_ITEM 请求。 使用匹配的 InstanceName 属性导出数据块实例的驱动程序将更新数据块实例中的指定属性。

驱动程序还可以使用 IoWMISetSingleInstance 同时更新 WMI 类实例的每个属性。

要求

要求
最低受支持的客户端 在 Windows XP 和更高版本的 Windows 操作系统中可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

IRP_MN_CHANGE_SINGLE_ITEM

IoWMIOpenBlock

IoWMIQuerySingleInstance

IoWMISetSingleInstance