Hinzufügen von Zählernamen und Beschreibungen zum RegisterHinzufügen von Namen und Beschreibungen von Leistungsindikatoren zur Registrierung
Wichtig
Aufgrund erheblicher Leistungs- und Zuverlässigkeitseinschränkungen kann die in diesem Thema beschriebene Methode zum Bereitstellen von Leistungsindikatordaten geändert oder in Zukunft nicht mehr verfügbar sein. Stattdessen empfiehlt Microsoft, die unter Bereitstellen von Leistungsindikatoren mithilfe von Version 2.0 beschriebene Methode zum Erstellen neuer Leistungsindikatoren zu verwenden und vorhandene Leistungsindikatoren zu migrieren, um diese Methode zu verwenden.
Die Namen und Beschreibungen aller V1-Leistungsobjekte und deren Leistungsindikatoren müssen im System installiert sein. So speichern Sie Namen und Beschreibungen für die Objekte und Indikatoren ihres V1-Anbieters:
- Erstellen Sie eine H-Headerdatei , die die symbolischen Konstanten für die Offsets zu Ihren Objekten und Leistungsindikatoren enthält.
- Erstellen Sie eine Initialisierungsdatei (.INI), die die Zeichenfolgen enthält.
- Führen Sie beim Installieren Ihrer Komponente das Tool lodctr aus, um die Namen und Beschreibungen in der Registrierung zu installieren.
- Führen Sie beim Deinstallieren Ihrer Komponente das Tool unlodctr aus, um die Namen und Beschreibungen aus der Registrierung zu entfernen.
Erstellen einer Datei mit symbolischen Konstanten (.h)
Erstellen Sie eine H-Headerdatei, die Konstanten (Makros) für die Offsets zu den Objekten und Leistungsindikatoren definiert, die Ihr Anbieter bereitstellt. Der H-Header wird während der Installation Ihres Anbieters als Eingabe für lodctr verwendet und kann auch vom C/C++-Code Ihres Anbieters verwendet werden.
Die Konstantenwerte müssen aufeinanderfolgende, gerade Zahlen sein, die mit 0 beginnen. Gruppieren Sie die Konstanten nach -Objekten (d. h. starten Sie jede Gruppe mit dem Objektoffset, und dann folgen Sie mit den Offsets der Indikatoren für dieses Objekt).
Die Konstanten im Header bestimmen die Reihenfolge, in der die Leistungsindikatoren dem Namen und hilfetext in der Registrierung hinzugefügt werden. Der Anbieter verwendet die Offsets, um zu bestimmen, welches Objekt abgefragt wird und welche Indexwerte beim Zurückgeben der Daten verwendet werden sollen. Ausführliche Informationen finden Sie unter Implementieren von OpenPerformanceData.
Im Folgenden finden Sie ein Beispiel für eine symbolische Konstantendatei mit dem Namen CounterOffsets.h, die im Dll-Beispiel Erstellen einer Leistungserweiterung verwendet wird.
#ifndef OFFSETS_H
#define OFFSETS_H
// Symbol file that defines constant values for the objects
// and counters that the provider provides. The counters should be
// grouped by object.
#define TRANSFER_OBJECT 0 // First object must be at offset 0.
#define BYTES_SENT 2 // Counters for the object follow.
#define AVAILABLE_BANDWIDTH 4 // Offsets must be even numbers.
// Not required, but for convenience in implementing the Open function:
#define LAST_TRANSFER_OBJECT_COUNTER_OFFSET AVAILABLE_BANDWIDTH
#define PEER_OBJECT 6 // Second object must be at the next offset.
#define BYTES_SERVED 8 // Counter for the second object.
// Not required, but for convenience in implementing the Open function:
#define LAST_PEER_OBJECT_COUNTER_OFFSET BYTES_SERVED
#endif // OFFSETS_H
Erstellen einer Initialisierungsdatei (.INI)
Die Initialisierungsdatei (.INI) enthält den Namen und die Hilfezeichenfolgen für jedes Objekt und jeden Leistungsindikator, der in ihrer Symboldatei definiert ist. Die .INI datei wird während der Installation Ihres Anbieters als Eingabe für lodctr verwendet.
Die .INI-Datei sollte als UTF-16LE (mit Bytereihenfolgenmarkierung) codiert sein und die folgenden Abschnitte und Schlüssel aufweisen:
[info]
drivername=ServiceKeyName
symbolfile=SymbolFile.h
trusted=(Unused)
[objects]
<symbol>_<langid>_NAME=(Unused)
[languages]
<langid>=(Unused)
[text]
<symbol>_<langid>_NAME=Name
<symbol>_<langid>_HELP=Description
Abschnitt [info]
Der [info]
Abschnitt enthält allgemeine Informationen zum Anbieter. Die Abschnittsschlüssel werden wie folgt definiert:
Schlüssel | BESCHREIBUNG |
---|---|
DriverName | Geben Sie den Namen des Leistungsschlüssels des Anbieters in der Registrierung unter dem Schlüssel an HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services . Informationen zum Erstellen dieses Schlüssels finden Sie unter Erstellen des Leistungsschlüssels der Anwendung. |
SymbolDatei | Geben Sie die H-Headerdatei an, die symbolische Werte der Objekte und Indikatoren Ihres Anbieters enthält. Während der Installation (beim Aufrufen von lodctr) muss sich die Headerdatei im selben Verzeichnis wie die .INI-Datei befinden. |
Vertrauenswürdigen | Wenn Sie diesen Schlüssel in den [info] Abschnitt einschließen, fügt lodctr Ihrem Leistungsschlüssel einen Registrierungswert für Den Bibliotheksüberprüfungscode mit einer binären Signatur Ihrer Leistungs-DLL hinzu. Wenn PERFLIB Ihre DLL aufruft, vergleicht es die Signatur mit Ihrer DLL, um festzustellen, ob die DLL geändert wurde. Der Wert des vertrauenswürdigen Schlüssels wird ignoriert. |
Die DriverName
Schlüssel und SymbolFile
sind erforderlich.
Abschnitt [objects]
Der [objects]
Abschnitt enthält eine Liste der Leistungsobjekte, die der Anbieter unterstützt. Dies wird verwendet, um zu bestimmen, ob jedes Symbol aus dem [text]
Abschnitt auf ein Objekt oder einen Zähler verweist.
Fügen Sie für jedes objekt (counterset), das von Ihrem Anbieter unterstützt wird, einen Schlüssel mit dem Namen <symbol>_<langid>_NAME=
zum [objects]
Abschnitt hinzu, wobei <symbol>
der Name des Objekts und <langid>
die Sprach-ID einer der unterstützten Sprachen ist. Der Wert wird ignoriert.
Wichtig
Der [objects]
Abschnitt verbessert die Leistung des Systems. Obwohl der Abschnitt "Objekte" optional ist, sollten Sie diesen Abschnitt immer in Ihre .INI-Datei einschließen. Wenn Sie diesen Abschnitt einschließen, wird Ihre Leistungs-DLL nur aufgerufen, wenn Sie das angeforderte Objekt unterstützen. Wenn Sie den Abschnitt "Objekte" nicht einschließen, wird Ihre DLL für jede Abfrage aufgerufen, da das System nicht weiß, welche Objekte Ihr Anbieter unterstützt. Wenn der Objektabschnitt nicht enthalten ist, generiert lodctr eine Meldung im Anwendungsereignisprotokoll, dass die .INI-Datei keinen Objektabschnitt enthält. Der Ereignisbezeichner dieser Nachricht ist 2000.
Abschnitt [Sprachen]
Der [languages]
Abschnitt enthält eine Liste der Sprachbezeichner jeder Sprache, für die Ihr Anbieter Namen und Hilfezeichenfolgen bereitstellt. Alle Anbieter sollten (Englisch) unterstützen 009
.
Fügen Sie für jede unterstützte Sprache einen Schlüssel mit dem Namen hinzu <langid>=
. Der Wert wird ignoriert, aber zu Dokumentationszwecken wird der Wert normalerweise auf den Namen der entsprechenden Sprache festgelegt, z. B. 009=English
.
Für die meisten Sprachen sollten Sie den primären Sprachbezeichner verwenden. Die vollständige Liste der Sprachbezeichner befindet sich in der Winnt.h-Headerdatei unter der Überschrift "Primäre Sprach-IDs". Konvertieren Sie den in Winnt.h gefundenen Wert in eine Sequenz von 3 Hexadezimalstellen, indem Sie das 0x
Präfix entfernen und führende 0
Ziffern hinzufügen, bis die Sequenz 3 Ziffern lang ist. Verwenden Sie beispielsweise 009, um englische Zeichenfolgen (0x9) anzugeben. Um italienische Zeichenfolgen (0x10) anzugeben, verwenden Sie 010.
Chinesisch und Portugiesisch erfordern sowohl den primären bezeichner als auch den Untersprachbezeichner. Verwenden Sie 404, 804, 416 oder 816 anstelle von 004 oder 016.
Abschnitt [text]
Der [text]
Abschnitt enthält den Namen und die Hilfezeichenfolgen für Ihre Objekte und Leistungsindikatoren.
Für jedes Objekt oder jeden Leistungsindikator und für jede unterstützte Sprache müssen Sie einen NAME-Schlüssel (mit dem Namen oder der Titelzeichenfolge für Ihr Objekt oder Zähler) angeben, und Sie können optional einen HELP-Schlüssel (mit der Beschreibungs- oder Erklärungszeichenfolge für Ihr Objekt oder Zähler) bereitstellen. Die Schlüssel sollten den Namen und <symbol>_<langid>_HELP
haben<symbol>_<langid>_NAME
, wobei <symbol>
die symbolische Konstante für das Objekt oder den Zähler (wie in der .h-Datei der symbolischen Konstanten definiert) und <langid>
der Sprachbezeichner ist, der für diese Zeichenfolge verwendet wird.
Beispielsweise werden die englischen Zeichenfolgen für einen Zähler mit Symbol MY_COUNTER
wie folgt angegeben:
MY_COUNTER_009_NAME=My Counter
MY_COUNTER_009_HELP=Description for My Counter.
Die Texttasten können in beliebiger Reihenfolge angezeigt werden. Die Textzeichenfolgen sollten keine Formatierungszeichen wie Registerkarten enthalten.
Beispiel-INI-Datei
Das folgende Beispiel zeigt eine Initialisierungsdatei, die im Beispiel Erstellen einer Leistungserweiterungs-DLL verwendet wird.
[info]
drivername=MyApplication
symbolfile=CounterOffsets.h
trusted=
[objects]
TRANSFER_OBJECT_009_NAME=
PEER_OBJECT_009_NAME=
[languages]
009=English
00C=French
[text]
// English strings
TRANSFER_OBJECT_009_NAME=Transfer
TRANSFER_OBJECT_009_HELP=Provides information related to transferring files.
BYTES_SENT_009_NAME=Bytes Sent
BYTES_SENT_009_HELP=Number of bytes sent in the last transfer.
AVAILABLE_BANDWIDTH_009_NAME=Available Bandwidth
AVAILABLE_BANDWIDTH_009_HELP=Available bandwidth on the network, in bytes.
PEER_OBJECT_009_NAME=Peer
PEER_OBJECT_009_HELP=Provides information related to peer-caching.
BYTES_SERVED_009_NAME=Bytes Served
BYTES_SERVED_009_HELP=Number of bytes served from the cache.
// French strings
TRANSFER_OBJECT_00C_NAME=Transfert
TRANSFER_OBJECT_00C_HELP=Fournit des informations liées aux transferts de fichiers.
BYTES_SENT_00C_NAME=Octets Envoyés
BYTES_SENT_00C_HELP=Nombre d'octets envoyés dans le dernier transfert.
AVAILABLE_BANDWIDTH_00C_NAME=Bande Passante Disponible
AVAILABLE_BANDWIDTH_00C_HELP=Bande passante disponible sur le réseau, en octets.
PEER_OBJECT_00C_NAME=Pair
PEER_OBJECT_00C_HELP=Fournit des informations liées é mise en cache homologue.
BYTES_SERVED_00C_NAME=Octets Servis
BYTES_SERVED_00C_HELP=Le nombre d'octets servis du cache.
Ausführen des Lodctr-Tools
Um die Namen und Hilfezeichenfolgen zu laden, die in Ihrer .INI-Datei (während der Installation Ihres Anbieters) definiert sind, führen Sie das lodctr-Tool aus dem Ordner aus, der Ihre .INI Datei und die Headerdatei enthält. Das Tool ist im Lieferumfang des Computers enthalten. Sie müssen lodctr mit erhöhten Rechten ausführen. Der Parameter für lodctr ist der Pfad zu Ihrer .INI-Datei. Beispiel: lodctr "C:\Program Files\MyCompany\MyProvider\MyProvider.ini"
.
Um die Namen und Hilfezeichenfolgen (während der Deinstallation) zu entladen, führen Sie das Tool unlodctr aus. Sie müssen unlodctr mit erhöhten Rechten ausführen. Der zu entlodctr zu verwendende Parameter ist der DriverName Ihres Anbieters (der Name des Leistungsschlüssels des Anbieters). Beispiel: unlodctr "MyProvider"
.
Stellen Sie vor dem Ausführen von lodctr sicher, dass Ihre Anwendung einen Eintrag unter dem Schlüssel Dienste enthält. Ausführliche Informationen finden Sie unter Erstellen des Leistungsschlüssels der Anwendung. Wenn der Schlüssel nicht vorhanden ist, aktualisiert lodctr die Registrierung nicht mit Ihren Namen und Beschreibungen.
Alternativ zum Ausführen von lodctr können Sie LoadPerfCounterTextStrings (definiert in Loadperf.h) aus Ihrem Installationsprogramm aufrufen, um die Beschreibungen ihrer Indikatorennamen zu laden. Sie können dann unloadPerfCounterTextStrings während der Deinstallation aufrufen.
Das Hilfsprogramm lodctr kopiert die Zeichenfolgen aus der .INI-Datei in die Registrierungswerte Counters und Help unter den entsprechenden Sprachunterschlüsseln. Wenn der entsprechende Sprachunterschlüssel nicht vorhanden ist, werden die Zeichenfolgen für diese Sprache nicht kopiert. Das Hilfsprogramm aktualisiert auch den Wert Last Counter und Last Help . Die Namen und Beschreibungen des Leistungsindikators werden am folgenden Speicherort in der Registrierung gespeichert.
HKEY_LOCAL_MACHINE
\SOFTWARE
\Microsoft
\Windows NT
\CurrentVersion
\Perflib
Last Counter = highest counter index
Last Help = highest help index
\009
Counters = 2 System 4 Memory...
Help = 3 The System Object Type...
\supported language, other than English
Counters = ...
Help = ...
Zusätzlich zum Hinzufügen von Werten unter dem PerfLib-Schlüssel fügt das lodctr-Tool dem Knoten Dienste für die Anwendung auch die folgenden Werte hinzu. In den meisten Fällen verfügen die Anwendung und der Anbieter über eine 1:1-Beziehung. Es ist jedoch möglich, dass ein Anbieter Zählerdaten für mehrere Anwendungen bereitstellt, weshalb der Schlüssel auf der Anwendung und nicht auf dem Anbieter basiert.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\MyApplication
\Performance
First Counter = lowest counter index assigned to provider
First Help = lowest help index assigned to provider
Last Counter = highest counter index assigned to provider
Last Help = highest help index assigned to provider
Object List = list of object index values if the .INI includes the [objects] section
Library Validation Code = if the [info] section contains a "trusted" key