PDH APIs verwenden richtig in der lokalisierten Sprache

Zusammenfassung

Performance Manager (PDH) APIs verwenden Objekt- und Zählerregistrierungsschlüssel Namen, die in der lokalisierten Sprache. Daher sollten, PDH APIs verwenden, immer die lokalisierte Zeichenfolge für das Objekt oder Leistungsindikator Namen Spezifikation verwenden. Vor dem Sammeln von Leistungsdaten, muss die Anwendung den Namen Objekt oder Leistungsindikator in der Anwendung kennen. Objekte und Leistungsindikatoren als eine englische Zeichenfolge in der Anwendung bekannt ist, sind einige zusätzliche Schritte, die Sie auf einem System ausführen müssen, die eine lokalisierte Sprache wie Französisch oder Deutsch verwendet. Dieser Artikel beschreibt die Schritte, die erforderlich sind.

Weitere Informationen

Anträge, die Objekt- und Zählerregistrierungsschlüssel Namen PdhEnumObjects() oder PdhEnumObjectItems() APIs abrufen immer Zeichenfolgen, die die lokalisierte Sprache entsprechen. Wenn die Anwendung sammeln die Leistungsdaten aller Leistungsobjekte, Leistungsindikatoren und Instanzen interessiert, können die Namen, die die PdhEnumObjects() -API oder die PdhEnumObjectItems() -API Leistungsindikatorpfad in der lokalisierten Sprache erstellen, und fügen Sie den Indikator mithilfe der API PdhAddCounter() PDH-Abfrage zurückgegeben werden. Wenn die Leistungsdaten auf diese Weise erfasst werden, funktioniert die Anwendung korrekt in jede lokalisierte Sprache.

Es gibt jedoch Situationen, in denen eine Anwendung Erfassen von Leistungsdaten von nur einem bestimmten Objekt Leistungsindikator und Instanz interessiert. In solchen Fällen benötigen die Anwendung lokalisierte Sprachenname PDH-API-Aufrufe, die einen Namen wie PdhAddCounter()verwenden. Objekte und Leistungsindikatoren haben jedoch unterschiedliche "benutzerfreundliche" Namen in jede lokalisierte Sprache. Diese benutzerfreundlichen Namen werden von der jeweiligen Leistung Erweiterung DLL in einer INI-Datei für jede lokalisierte Sprache verfügbar gemacht. Objekte haben z. B. einen benutzerfreundlichen Namen wie "Process" in Englisch. In Deutsch oder Französisch dasselbe Objekt durch einen benutzerfreundlichen Namen in der entsprechenden Sprache dargestellt, und der Name ist eine Zeichenfolge, die direkt von ANSI in UNICODE konvertiert. Der Zähler hat einen benutzerfreundlichen Namen wie "Prozessorzeit (%)" auf Englisch. Instanzen haben jedoch nicht den benutzerfreundlichen Namen in jeder Sprache. Objekt- und Zählerregistrierungsschlüssel Zeichenfolgen werden in einer nicht-englischen Version von Windows NT oder Windows 2000 in der systemeigenen Sprache des Systems und Englisch gespeichert. Jedes Objekt oder Leistungsindikator wird von einem Objekt oder Leistungsindikator Index identifiziert. Objekt oder Leistungsindikator Index und Zuordnungsinformationen Name ist im Zähler -Registrierungswert unter dem folgenden Registrierungsschlüssel gespeichert:



HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\LangId

Dabei ist LangId 009 für Englisch. Der Registrierungswert Zähler vom Typ REG_MULTI_SZ und kann nur mithilfe von Regedt32 angezeigt. Der Indexwert für die Basisklasse Systemleistungsindikatoren und Objekte wie Prozessor, Prozess, Thread und Speicher sind immer unabhängig die lokalisierte Version des Betriebssystems oder Servicepacks installiert. Jedoch wird der Indexwert der Erweiterung Leistung zurückgegebene Objekte DLL auf verschiedenen Systemen abweichen. Erweiterung Leistung kann mithilfe des Dienstprogramms LODCTR.exe auf Basis-Betriebssystem installiert werden. LODCTR.exe erstellt Indizes aus der INI-Datei für dieses Dienstprogramm bereitgestellt. Daher wird der Indexwert Leistungsindikatorenanbieter wie Microsoft Internet Information Server und Microsoft SQL Server-Erweiterung von System zu System je nach Reihenfolge abweichen.

Wenn die Anwendung die Objekt- und Zählerregistrierungsschlüssel Namen nur englische kennt, können diese Namen wie folgt auf die entsprechenden lokalisierten Namen konvertiert werden.

Verwenden Sie die Registrierungs-API zu Counter Titel und Indizes in Englisch wie folgt:
dwStatus = RegQueryValueEx(   HKEY_PERFORMANCE_DATA,
"Counter 009",
NULL,
&dwType,
lpmszCounters,
&cbCounters);

Wert der mehrteiligen Zeichenfolge, einschließlich der Objekt- und Zählerregistrierungsschlüssel Namen mit den Indizes der Puffer LpmszCounters eingetragen. "009" ist Englisch. Das Format ist Indexzeichenfolge gefolgt von der Zeichenfolge und index Zeichenfolge, gefolgt von der Zeichenfolge durch ein anderes NULL-Zeichen am Ende abgeschlossen. Anwendung erhalten diese Liste, die mit der ID eine englische Objekt-Leistungsindikator-Zeichenfolge entspricht. Nachdem der Index für ein Objekt sowie identifiziert, finden die Anwendung lokalisierte Objekt oder Leistungsindikator Namens aus dem Index mit PdhLookupPerfNameByIndex() API. Lokalisierte Objekt und von dieser API zurückgegeben Zählername können dann in anderen PDH-API-Aufrufe verwendet werden, die Objekt oder Leistungsindikator Namen. Wenn PdhLookupPerfNameByIndex() API mit der Namen der Objekt oder Leistungsindikator erfasst werden, funktioniert die Anwendung korrekt in jede lokalisierte Sprache.


Wenn die Anwendung verteilt und speichert Zählers englische Zeichenfolgen auf einem anderen System dann überwachte System, die Anwendung Probleme auftreten, wenn doppelte Leistungsindikatoren mit dem englischen Namen. Zeichenfolge ist zu Englisch ordnet Objekt oder Leistungsindikator-ID nicht eindeutig. Verwenden Sie zum Umgehen dieses Problems in Ihrer Anwendung Logik für die Ausnahmebehandlung.

Referenzen

PDH APIs werden in der Datei PDH.dll implementiert und diese DLL in Windows 2000 enthalten. Für Windows NT 4.0 müssen Sie eine separate redistributable PDH.dll Datei herunterladen. Weitere Informationen zu dieser Datei für Windows NT 4.0 klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

284996 neueste verteilbare PDH.dll für Windows NT 4.0

Weitere Informationen zu den PDH APIs finden Sie Performance-Überwachung in der MSDN Library im Abschnitt Base Services.
Eigenschaften

Artikelnummer: 287159 – Letzte Überarbeitung: 10.01.2017 – Revision: 1

Feedback