IoWMISetSingleInstance 函数 (wdm.h)
IoWMISetSingleInstance 例程设置数据块实例中与指定的 WMI 类和实例名称匹配的属性的值。
语法
NTSTATUS IoWMISetSingleInstance(
[in] PVOID DataBlockObject,
[in] PUNICODE_STRING InstanceName,
[in] ULONG Version,
[in] ULONG ValueBufferSize,
[in] PVOID ValueBuffer
);
参数
[in] DataBlockObject
指向 WMI 数据块对象的指针。 调用方使用 IoWMIOpenBlock 例程打开 WMI 类的数据块对象。 必须使用WMIGUID_SET访问权限打开对象。
[in] InstanceName
指定数据块的实例的名称。 此值对应于块的 InstanceName 属性的值。
[in] Version
保留供将来使用。 调用方必须将此参数设置为零。
[in] ValueBufferSize
指定在 ValueBuffer 参数中传递的缓冲区的大小(以字节为单位)。
[in] ValueBuffer
指向缓冲区的指针,该缓冲区包含数据块中属性的新值。
返回值
例程返回 NTSTATUS 代码。 可能的返回值包括:
返回代码 | 说明 |
---|---|
|
操作成功。 WMI 数据块实例属性的值将更新为 ValueBuffer 参数指向的缓冲区的内容。 |
|
没有驱动程序实现 WMI 类。 |
|
没有驱动程序实现 WMI 类的实例, 其 InstanceName 属性等于 InstanceName 参数中指定的值。 |
|
WMI 类的所有属性都是只读的。 |
|
实现 WMI 数据块实例的驱动程序无法更新实例。 |
注解
IoWMISetSingleInstance 确定哪些驱动程序可能支持指定的 WMI 类和实例名称,并为每个此类驱动程序发出 IRP_MN_CHANGE_SINGLE_INSTANCE 请求。 使用匹配的 InstanceName 属性导出数据块实例的驱动程序会更新其数据块实例。 请注意,数据块可能同时具有只读属性和读/写属性。 在这种情况下,将仅更新读/写属性并返回STATUS_SUCCESS。
驱动程序还可以使用 IoWMISetSingleItem 例程更新类实例中的单个属性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows XP 和更高版本的 Windows 操作系统中可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |