Freigeben über


Erstellen anderer Registrierungseinträge

Wie unter Erstellen des Leistungsschlüssels der Anwendung beschrieben, muss eine Komponente, die Leistungsindikatordaten bereitstellt, einen Leistungsschlüssel unter dem Schlüssel Dienste enthalten, und der Leistungsschlüssel muss die Werte Bibliothek, Öffnen, Sammeln und Schließen enthalten. In bestimmten Fällen muss Ihre Komponente möglicherweise zusätzliche Registrierungswerte konfigurieren.

Metadaten

MetadataGlobalund MetadataCostly sind reine Metadatenabfragen, die von Windows 10 20H1 und höher generiert werden. Sie ermöglichen es einem Benutzer, Metadaten (Objektinformationen und Indikatorinformationen) abzurufen, ohne eine potenziell teure Datensammlung durchzuführen. Es wird erwartet, dass die reine Metadatenabfrage die gleichen Ergebnisse wie die entsprechende Global Oder Costly -Abfrage zurückgibt, mit der Ausnahme, dass NumInstances auf PERF_METADATA_MULTIPLE_INSTANCES (für ein Objekt mit mehreren instance) oder PERF_METADATA_NO_INSTANCES (für ein Objekt mit einem instance) festgelegt werden sollte, und das Ergebnis sollte alle PERF_INSTANCE_DEFINITION Blöcke weglassen.

Wenn Ihre Leistungs-DLL - und MetadataCostly -Abfragetypen unterstütztMetadataGlobal, sollte sie dies angeben, indem sie ihrem Performance Schlüssel einen REG_DWORD Wert Collect Supports Metadata hinzufügt und den Wert auf 1 festlegen. Wenn Collect Supports Metadata nicht vorhanden oder auf 0 festgelegt ist, führt eine reine Metadatenabfrage ein Fallback auf eine Global - oder Costly -Abfrage aus.

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name
               \Performance
                  Collect Supports Metadata = 1

Bindung

Die OpenPerformanceData-Funktion der Leistungs-DLL verwendet ein Zeichenfolgenargument als Eingabe. Um ihrer geöffneten Funktion eine Eingabezeichenfolge bereitzustellen, fügen Sie einen Linkage-Schlüssel unter Ihren Dienstschlüssel ein. Der Linkage-Schlüssel enthält einen Exportwert . Legen Sie die Wertdaten für Export auf die Eingabezeichenfolge fest, die Sie an Ihre geöffnete Funktion übergeben möchten. Der Datentyp von Export ist REG_MULTI_SZ.

Wenn Export nicht definiert ist (Export ist optional), übergibt das System NULL an Ihre OpenPerformanceData-Funktion .

Wenn mehrere Anwendungen dieselbe Leistungs-DLL verwenden, enthält jede Anwendung in der Regel einen Linkage-Schlüssel und einen Exportwert , um kontextabhängig zu sein, welche Anwendung die DLL aufruft.

Im Folgenden werden die Registrierungseinträge veranschaulicht:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name-1
               \Linkage
                  Export = app-1 context strings
               \Performance
                  Library = perfctrs.dll
            \application-name-2
               \Linkage
                  Export = app-2 context strings
               \Performance
                  Library = perfctrs.dll

Timeout

Standardmäßig müssen die Funktionen OpenPerformanceData und CollectPerformanceData der Leistungs-DLL innerhalb von 10.000 Millisekunden zurückgeben. Wenn dies nicht der Fall ist, verwendet das System nicht die Daten, die die DLL zurückgibt. Die Anwendung kann den Timeoutwert erhöhen oder verringern, indem sie den Registrierungswert Open Timeout oder Collect Timeout unter dem Leistungsschlüssel angibt, wie im folgenden Beispiel gezeigt.

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Services
            \application-name
               \Performance
                  Open Timeout = Timeout value for your open function, in milliseconds
                  Collect Timeout = Timeout value for your collect function, in milliseconds

DOS-Geräte

Zum Abrufen der Leistungsdaten für einige Anwendungen (solche, die Leistungsindikatoren mithilfe der DeviceIoControl-Funktion zurückgeben), müssen Sie die CreateFile-Funktion verwenden, um das der Anwendung zugeordnete Gerät zu öffnen. In diesem Fall muss der in CreateFile angegebene Name auch im Knoten DOS-Geräte der Registrierung installiert werden, wie hier gezeigt:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \Session Manager
               \DOS Devices