支持不完整实例操作

无需使用提供程序即可支持任何不完整实例操作。 但是,提供程序必须支持不完整实例操作的所有语义、处理完整实例或返回 WBEM_E_UNSUPPORTED_PARAMETER。

创建支持不完整实例操作的提供程序时,必须遵循以下规则:

  • 重复使用 WMI 发送到提供程序的同一上下文对象。 WMI 使用名为“__GET_EXT_CLIENT_REQUEST”的值来防止死锁,并在将上下文对象转发到提供程序之前移除此客户端。
  • 对 WMI 进行不需要不完整实例操作的可重入回调时,请确保传回相同的上下文对象,不进行任何修改。 WMI 接收未设置“__GET_EXT_CLIENT_REQUEST”命名值集的上下文对象,并在将不完整实例操作传递给其他提供程序之前从上下文对象中删除与不完整实例操作关联的所有命名值。 不更改上下文对象会阻止其他提供程序接收针对其他不相关对象的不完整实例检索操作。
  • 若要在执行请求时执行可重入的不完整实例操作,请设置缺少的“__GET_EXT_CLIENT_REQUEST”命名值和属性 clear。 (可选)可以在使用可重入调用将上下文对象发送回 WMI 之前修改“__GET_EXT_PROPERTIES”命名值中的属性。
  • 在可重入调用期间将上下文对象返回到 WMI 后,请勿访问该上下文对象;其他提供程序在重新进入期间可能会修改属性列表或其他值。 只能在你实现的 IWbemServices 调用的持续时间内查看或修改上下文对象。