屬性提供者會使用 IWbemPropertyProvider 方法作為 WMI 的主要介面。 使用 IWbemPropertyProvider,您可以實作程式代碼來擷取和修改類別和實例屬性。
下表列出您可以針對屬性提供者實作 IWbemPropertyProvider 方法。
| 方法 | 特徵 |
|---|---|
| GetProperty | 檢索 |
| PutProperty | 修改 |
注意
您必須將屬性提供者實作為同進程提供者。 WMI 會初始化寫入為服務或可執行文件的屬性提供者,但永遠不會呼叫其 GetProperty 和 PutProperty 方法。
如果您選擇不支援其中一種方法,您的提供者可以提供傳回 WBEM_E_PROVIDER_NOT_CAPABLE的存根實作。
屬性提供者會透過三個限定符集來識別 Managed 類別或實例:PropertyContext、InstanceContext和 ClassContext。 WMI 會將描述這三個限定符的字串常數傳入屬性提供者。
您的資源提供者必須準備好處理下列類型的上下文限定符:
- InstanceContext 限定符會附加至實例,並包含套用至實例中每個屬性的資訊。
- ClassContext 限定符會附加至類別,並包含套用至 類別中每個實例的資訊。 例如,在用來儲存登錄提供者所提供數據的類別中,ClassContext 可以是包含要報告之屬性的登錄機碼路徑。
- PropertyContext 限定符指定屬性相關的特定內容資訊。 例如,在用來儲存登錄提供者所提供數據的類別中,PropertyContext 指定要由 屬性儲存之登錄值的名稱。
這些限定元可以一起運作。 您可以同時指定 InstanceContext 和 PropertyContext 值,告訴提供者如何處理特定類型的實例。 例如,您可能想要將提供者可辨識的實例標記為可讀,但只有一個可寫的屬性。
最常使用的限定符是 PropertyContext。 因此,WMI 會提供 DynProps 限定符做為快捷方式。 WMI 會將標記有 DynProps 的實例中每個屬性,同時視為具有 動態、提供者及 PropertyContext 的限定符。