IoWMIOpenBlock 函数 (wdm.h)
IoWMIOpenBlock 例程打开指定 WMI 类的 WMI 数据块对象。
语法
NTSTATUS IoWMIOpenBlock(
[in] LPCGUID Guid,
[in] ULONG DesiredAccess,
[out] PVOID *DataBlockObject
);
参数
[in] Guid
指定 WMI 类的 GUID。
[in] DesiredAccess
指定对数据块对象所需的访问权限。 调用方必须具有特定访问权限才能执行某些操作。
下面是每个访问权限位及其允许的操作的说明:
WMIGUID_EXECUTE
数据块对象可用于运行 WMI 类方法。 必须将此标志设置为在数据块对象上使用 IoWMIExecuteMethod 。
WMIGUID_NOTIFICATION
数据块对象可用于注册事件通知回调。 此标志必须设置为使用 IoWMISetNotificationCallback,并且只能用于 WMI 事件块。 指定此标志的调用方还必须指定 SYNCHRONIZE 标志。
WMIGUID_QUERY
数据块对象可用于查询 WMI 类属性。 必须将此标志设置为在数据块对象上使用任何 IoWMIQueryXxx 例程。
WMIGUID_SET
数据块对象可用于设置 WMI 类属性。 必须将此标志设置为在数据块对象上使用任何 IoWMISetXxx 例程。
[out] DataBlockObject
指向内存位置的指针,其中例程返回指向数据块对象的指针。
返回值
成功时返回STATUS_SUCCESS,失败时返回相应的 NTSTATUS 错误代码。
注解
调用方使用 IoWMIOpenBlock 为指定的 WMI 类 GUID 创建数据块对象。 随后,调用方可以使用数据块对象来读取或写入 WMI 类属性、运行 WMI 类方法以及注册 WMI 事件的回调。
使用 IoWMIQueryXxx 和 IoWMISetXxx 例程读取和写入 WMI 类属性。 使用 IoWMIExecuteMethod 运行 WMI 类方法,并使用 IoWMISetNotificationCallback 注册 WMI 事件通知回调。
不再需要数据块对象后,使用 ObDereferenceObject 关闭它。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows XP 和更高版本的 Windows 操作系统中可用。 |
目标平台 | 通用 |
标头 | wdm.h (包括 Ntddk.h、Ntifs.h。WMIGUID_XXX值在 Wmistr.h 中声明。若要使用它们,请包含 Wmistr.h.) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |