Unterstützen der Win32 _ PerfRawData-Klasse
Beim Schreiben eines Hochleistungsanbieters, der Klassen von Win32 _ PerfRawDataabgeleitet, müssen Sie bestimmte Konventionen befolgen, damit WMI Daten für die Eigenschaftswerte bereitstellen kann.
Hinweis
Das Schreiben eines WMI-Hochleistungsanbieters zum Erstellen von Leistungsindikatoren wird für keine Version des Windows Betriebssystems empfohlen. Weitere Informationen finden Sie unter Making an Instance Provider into a High-Performance Providerand Performance Libraries und WMI.
Im folgenden Verfahren wird beschrieben, wie Sie die Win32 _ PerfRawData-Klasse mit Ihrem Hochleistungsanbieter unterstützen.
So unterstützen Sie die Win32 _ PerfRawData-Klasse
Erstellen Sie Ihre Klasse im \ Root CIMv2-Namespace.
Die Klasse muss von Win32 _ PerfRawData abgeleitet sein und den Hiperf-Qualifizierer auf TRUE festlegen. Sie können dem wmi-Stammnamespace auch Leistungsdatenklassen für WDM (Treiber) \ hinzufügen. Weitere Informationen zum Erstellen einer eigenen Klasse für WMI finden Sie unter Entwerfen von MOF-Klassen (Managed Object Format).
Geben Sie den Anbieter im Anbieterqualifizierer als "NT5 _ GenericPerfProvider _ V1" an.
Geben Sie die folgenden Qualifizierer auf Klassenebene an:
- HiPerf
- Gebietsschema
- PerfDetail
- Anbieter
Weitere Informationen finden Sie unter Klassenqualifizierer für Leistungsindikatorklassen. Definieren Sie den GenericPerfCtr-Qualifizierer nicht, da dieser für den ADAP-Prozess reserviert ist, der Leistungsbibliotheksdaten in WMI-Klassen überträgt.
Füllen Sie die entsprechenden Zeitstempel- und Häufigkeitseigenschaften auf, die zum Berechnen von Gegentypformeln verwendet werden.
Diese Eigenschaften werden von Win32 _ PerfRawData geerbt. Wenn Sie einen Hochleistungsanbieter schreiben, müssen Sie diese angaben, damit die Klasse im Systemmonitor angezeigt wird.
Schließen Sie eine Schlüsseleigenschaft namens Name in Ihre Klasse ein (diese Eigenschaft ist für Singletonklassen nicht erforderlich).
Sie dürfen keine andere Schlüsseleigenschaft als Name für Ihre Klasse verwenden.
Erstellen Sie Eigenschaften, die entweder als DWORD (uint32) oder QWORD (uint64) typisiert sind. Diese Eigenschaften werden zu Leistungsindikatoren, wenn sie an die Leistungsbibliotheken übertragen werden.
Geben Sie die folgenden Eigenschaftsebenenqualifizierer für alle Eigenschaften in Ihrer Klasse an:
- DisplayName
- Countertype
- DefaultScale
- Beschreibung
- PerfDefault
- PerfDetail
Weitere Informationen finden Sie unter Eigenschaftenqualifizierer für Leistungsindikatorklassen. Darüber hinaus enthält die Headerdatei Winperf.h Werte, die Sie für PerfDetail und CounterType angeben können.
WMI verwendet die Qualifizierer DisplayName, Locale und Description für die Lokalisierung. Sie müssen dem MS _ 409-Namespace (Englisch) geänderte Qualifizierer hinzufügen, damit SystemMonitor Ihre Klassendaten ordnungsgemäß anzeigen kann. Dies bedeutet, dass Sie die Eigenschaftendefinition ändern, indem Sie einen Description-Qualifizierer mit erläuterndem Text hinzufügen und den DisplayName-Wert ausfüllen. Außerdem müssen Sie jedem anderen Gebietsschemanamespace, den Ihre Klasse unterstützt, geänderte Qualifizierer hinzufügen. Wenn ein Benutzer Daten von einem Gebietsschema anfordert, für das Sie keine geänderten Qualifizierer angeben, verwendet WMI standardmäßig die Definitionen, die im MS _ 409-Namespace angegeben sind.
Erstellen Sie eine Basiseigenschaft für jede Eigenschaft, die über einen Indikatortyp verfügt, der einen Basiswert erwartet.
Diese Eigenschaft folgt unmittelbar auf die -Eigenschaft und hat den Namen Propertyname**_ Basis.** Beispielsweise erfordert die durchschnittliche Eigenschaft AvgDiskBytesPerRead in der Win32 _ PerfRawData _ PerfDisk _ LogicalDisk-Klasse eine Basiseigenschaft mit dem Namen AvgDiskBytesPerRead _ Base, um die Anzahl der Stichproben zu zählen. Um zu bestimmen, ob der indikatortyp, den Sie verwenden möchten, eine Basiseigenschaft erfordert, suchen Sie den Indikatortyp nach Name oder Dezimalwert in WMI-Leistungsindikatortypen.
Stellen Sie sicher, dass Ihr Anbieter die Leistungsanforderungenerfüllt.