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 事件的回调。

使用 IoWMIQueryXxxIoWMISetXxx 例程读取和写入 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

另请参阅

IoWMIExecuteMethod

IoWMIQueryAllData

IoWMIQueryAllDataMultiple

IoWMIQuerySingleInstance

IoWMIQuerySingleInstanceMultiple

IoWMISetNotificationCallback

IoWMISetSingleInstance

IoWMISetSingleItem

ZwClose