实现高性能接口
由于 WMI 将进程中的高性能提供程序加载到 WMI 或客户端应用程序,因此您必须将高性能提供程序设计为进程内服务器。 此外,必须在 IWbemHiPerfProvider 和 IWbemRefresher 接口中实现高性能提供程序方法。
您应该将高性能提供程序作为进程内服务器实现。 在实施进程内服务器安全时,你应该注意的一个特点是提供商如何识别自己的位置。 在进程内加载到 WMI 时,WMI 会使用 CLSID 对提供程序进行实例化。 在处理过程中加载到客户端应用程序时,客户端应用程序使用 ClientLoadableCLSID 属性对提供程序进行实例化。 通过为 CLSID 和 ClientLoadableCLSID 提供不同的值,允许提供程序确定它是在进程内加载到 WMI 还是客户端应用程序。 如果位于 WMI 进程中,提供程序应使用 ClientLoadableCLSID 执行任何必要的客户端模拟。 如果位于客户端进程中,提供程序将继承调用它的线程的访问令牌。 有关实现进程内服务器的详细信息,请参阅组件对象模型 (COM) 文档。
作为进程内服务器,高性能提供程序使用刷新对象来使远程客户端的数据保持最新状态。 下表列出了必须为高性能提供程序实现的方法。
方法 | 功能 |
---|---|
IWbemHiPerfProvider::QueryInstances | 查询 |
IWbemHiPerfProvider::GetObjects | 对象检索 |
IWbemHiPerfProvider::CreateRefresher | 创建刷新程序 |
IWbemHiPerfProvider::CreateRefreshableObject | 创建可刷新的实例对象 |
IWbemHiPerfProvider::CreateRefreshableEnum | 创建可刷新的枚举器 |
IWbemHiPerfProvider::StopRefreshing | 停止刷新枚举器或实例对象 |
IWbemRefresher::Refresh | 创建刷新程序 |
相关主题