__ObjectProviderRegistration 类
__ObjectProviderRegistration 抽象系统类充当用于在 WMI 中注册类和实例提供程序的类的父类。
以下语法从托管对象格式 (MOF) 代码简化而来,包括所有继承属性。 属性按字母顺序排列,而非 MOF 顺序。
语法
[abstract]
class __ObjectProviderRegistration : __ProviderRegistration
{
sint32 InteractionType = 0;
__Provider REF provider;
string QuerySupportLevels[];
boolean SupportsBatching;
boolean SupportsDelete = False;
boolean SupportsEnumeration = False;
boolean SupportsGet = False;
boolean SupportsPut = False;
boolean SupportsTransactions;
};
成员
__ObjectProviderRegistration 类具有以下类型的成员:
属性
__ObjectProviderRegistration 类具有以下属性。
-
InteractionType
-
-
数据类型:sint32
-
访问类型:读/写
指示类或实例提供程序是提供自己的数据,还是依赖于 WMI 和通用信息模型 (CIM) 存储库。 拉取提供程序支持对其数据的动态访问,推送提供程序将其数据存储在 CIM 存储库中,并依赖于 WMI 来提供对其的访问权限。 有关详细信息,请参阅确定推送或拉取状态。 默认值为 0(零)。
-
-
Pull (0)
-
提供程序是拉取提供程序。
-
Push (1)
-
提供程序是推送提供程序。
-
PushVerify (2)
-
提供程序是推送-验证提供程序。 请注意,当前不支持推送-验证提供程序。
提供程序
-
数据类型:__Provider
-
访问类型:只读
对 __Provider 实例的引用,该实例表示对象提供程序的对象路径。 此属性继承自 __ProviderRegistration。
QuerySupportLevels
-
数据类型:字符串数组
-
访问类型:读/写
“包含提供程序”类型的数组支持查询处理。 类提供程序不支持任何类型的查询。 实例提供程序可以将 QuerySupportLevels 设置为 NULL(如果它们不支持查询处理)。 支持查询的提供程序会实现 IWbemServices::ExecQueryAsync 方法,并将此属性设置为下列一个或多个值(属性类型是“数组”)。
“WQL:UnarySelect”
“WQL:References”
“WQL:Associators”
“WQL:V1ProviderDefined”
SupportsBatching
-
数据类型:布尔
-
访问类型:读/写
未使用。
SupportsDelete
-
数据类型:布尔
-
访问类型:读/写
如果为 True,提供程序将支持删除数据。
True
提供程序通过实现 IWbemServices::DeleteClassAsync(类提供程序)或 IWbemServices::DeleteInstanceAsync(实例提供程序)来支持删除类或实例。
False
提供程序不支持删除数据,并从 DeleteClassAsync 或 DeleteInstanceAsync 返回 WBEM_E_PROVIDER_NOT_CAPABLE。
SupportsEnumeration
-
数据类型:布尔
-
访问类型:读/写
如果为 True,提供程序将支持枚举数据。
True
提供程序通过实现 IWbemServices::CreateClassEnumAsync(类提供程序)或 IWbemServices::CreateInstanceEnumAsync(实例提供程序)来支持数据枚举。
False
提供程序不支持数据枚举,并从 CreateClassEnumAsync 或 CreateInstanceEnumAsync 返回 WBEM_E_PROVIDER_NOT_CAPABLE。
SupportsGet
-
数据类型:布尔
-
访问类型:读/写
如果为 True,该类或实例提供程序支持数据检索。
True
False
提供程序不支持数据检索,并从 GetObjectAsync 返回 WBEM_E_PROVIDER_NOT_CAPABLE。
SupportsPut
-
数据类型:布尔
-
访问类型:读/写
如果为 True,该类或实例提供程序支持修改数据。
True
提供程序通过实现 IWbemServices::PutClassAsync(类提供程序)或 IWbemServices::PutInstanceAsync(实例提供程序)来支持修改类或实例。
False
提供程序不支持修改数据,并从 PutClassAsync 或 PutInstanceAsync 返回 WBEM_E_PROVIDER_NOT_CAPABLE。
SupportsTransactions
-
数据类型:布尔
-
访问类型:读/写
未使用。
备注
__ObjectProviderRegistration 类派生自 __ProviderRegistration。
类提供程序必须将 SupportsEnumeration 属性设置为 True,因为提供程序必须能够向 WMI 提供其类的列表。 如果类提供程序尝试将此属性设置为 False,WMI 会将注册标记为“非法”。 实例提供程序不需要支持枚举,并可选择将 SupportsEnumeration 设置为 True 或 False。
将 QuerySupportLevels 设置为“WQL:UnarySelect”的提供程序可接受由 WMI 版本 1.0 中支持的基本 SELECT 语句组成的查询。 类和实例提供程序都有望能够处理 __CLASS 系统属性。 类提供程序还有望处理 __SUPERCLASS 系统属性和 ISA 运算符。 ISA 运算符用于将结果集扩展到派生类。 如果为提供程序提供了一个它无法解释的查询,它将通过返回 WBEM_E_TOO_COMPLEX 错误值请求 WMI 处理该查询。 有关有效 WQL 语法的说明,请参阅使用 WQL 进行查询。
将 QuerySupportLevels 设置为 WQL:V1ProviderDefined 的提供程序可尝试支持更大一组 SQL 语法(例如 ORDER BY
子句),但风险自负。 WMI 不会解释附加子句,也不会尝试确保结果集正确。
只有管理员可通过创建 __Win32Provider 实例并注册它来注册或删除提供程序。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista |
最低受支持的服务器 |
Windows Server 2008 |
命名空间 |
所有 WMI 命名空间 |