实现高性能接口
由于 WMI 将进程内高性能提供程序加载到 WMI 或客户端应用程序,因此必须将高性能提供程序设计为进程内服务器。 此外,必须在 IWbemHiPerfProvider 和 IWbemRefresher 接口中实现高性能提供程序方法。
应将高性能提供程序实现为进程内服务器。 在实现进程内服务器的安全性时,应注意的一个功能是提供程序如何识别自己的位置。 进程内加载到 WMI 时,WMI 使用 CLSID 实例化提供程序。 进程内加载到客户端应用程序时,客户端应用程序使用 ClientLoadableCLSID 属性实例化提供程序。 通过向 CLSID 和 ClientLoadableCLSID 提供不同的值,提供程序可以确定它是在进程内加载到 WMI 还是加载到客户端应用程序。 如果位于 WMI 进程中,提供程序应使用 ClientLoadableCLSID 执行任何必要的客户端模拟。 如果位于客户端进程中,提供程序将继承调用其线程的访问令牌。 有关实现进程内服务器的详细信息,请参阅 MSDN 的 COM 部分。
作为进程内服务器,高性能提供程序使用刷新器对象来保持远程客户端的数据处于最新状态。 下表列出了必须为高性能提供程序实现的方法。
方法 | 功能 |
---|---|
IWbemHiPerfProvider::QueryInstances | 查询 |
IWbemHiPerfProvider::GetObjects | 对象检索 |
IWbemHiPerfProvider::CreateRefresher | 创建刷新程序 |
IWbemHiPerfProvider::CreateRefreshableObject | 创建可刷新实例对象 |
IWbemHiPerfProvider::CreateRefreshableEnum | 创建可刷新枚举器 |
IWbemHiPerfProvider::StopRefreshing | 停止刷新枚举器或实例对象 |
IWbemRefresher::Refresh | 创建刷新程序 |
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈