實作高效能介面
由於 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 | 建立重新整理程式 |
相關主題