Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Because WMI loads a high-performance provider in-process to either WMI or a client application, you must design your high-performance provider as an in-process server. In addition, you must implement the high-performance provider methods in the IWbemHiPerfProvider and IWbemRefresher interfaces.
You should implement a high-performance provider as an in-process server. One feature you should be aware of when implementing the security of an in-process server is how the provider identifies its own location. When loaded in-process to WMI, WMI instantiates the provider using a CLSID. When loaded in process to a client application, the client application instantiates the provider with the ClientLoadableCLSID property. By giving different values to a CLSID and ClientLoadableCLSID, you allow the provider to determine if it is loaded in-process to WMI or to a client application. If located in a WMI process, the provider should do any necessary client impersonation by using ClientLoadableCLSID. If located in a client process, the provider inherits the access token of the thread it is called on. For more information about implementing an in-process server, see the Component Object Model (COM) documentation.
As an in-process server, a high-performance provider uses a refresher object to keep data current for the remote client. The following table lists methods that you must implement for a high-performance provider.
| Method | Feature | 
|---|---|
| IWbemHiPerfProvider::QueryInstances | Queries | 
| IWbemHiPerfProvider::GetObjects | Object retrieval | 
| IWbemHiPerfProvider::CreateRefresher | Creates a refresher | 
| IWbemHiPerfProvider::CreateRefreshableObject | Creates a refreshable instance object | 
| IWbemHiPerfProvider::CreateRefreshableEnum | Creates a refreshable enumerator | 
| IWbemHiPerfProvider::StopRefreshing | Stops refreshing an enumerator or instance object | 
| IWbemRefresher::Refresh | Creates a refresher | 
Related topics