Leistungsdatenformat
Das Format der von der RegQueryValueEx-Funktion abgerufenen Daten beginnt mit einer Headerstruktur fester Länge, PERF_DATA_BLOCK. Die PERF_DATA_BLOCK Struktur beschreibt das System und die Leistungsdaten. Auf die PERF_DATA_BLOCK Struktur folgt die variable Anzahl von Objektdatenelementen mit variabler Länge. Der Header jedes Objektelements enthält den Offset des nächsten Objektelements in der Liste. Das folgende Diagramm zeigt die grundlegende Struktur der Leistungsdaten.
Es gibt zwei Formate für die Objektdatenelemente: eines, das mehrere Instanzen unterstützt, und das andere, das nicht mehrere Instanzen unterstützt.
Jeder Objektdatenelementblock enthält eine PERF_OBJECT_TYPE-Struktur , die die Leistungsdaten für das Objekt beschreibt. Auf die PERF_OBJECT_TYPE-Struktur folgt eine Liste PERF_COUNTER_DEFINITION Strukturen , eine für jeden für das Objekt definierten Zähler. Bei einem Objekt mit nur einem instance folgt auf die Liste der PERF_COUNTER_DEFINITION Strukturen eine einzelne PERF_COUNTER_BLOCK-Struktur, gefolgt von den Zählerdaten. Jede PERF_COUNTER_DEFINITION-Struktur enthält den Offset vom Anfang der PERF_COUNTER_BLOCK-Struktur auf die entsprechenden Zählerdaten. Das folgende Diagramm zeigt die Struktur eines Leistungsobjekts, das mehrere Instanzen nicht unterstützt.
Bei einem Objekttyp, der mehrere Instanzen unterstützt, folgt auf die Liste der PERF_COUNTER_DEFINITION Strukturen eine Liste mit instance Informationsblöcken (einer für jeden instance). Jeder instance Informationsblock enthält eine PERF_INSTANCE_DEFINITION-Struktur, den Namen des instance und eine PERF_COUNTER_BLOCK-Struktur. Das folgende Diagramm zeigt die Struktur eines Leistungsobjekts, das zwei Instanzen unterstützt.
Ein Beispiel, das die Offsets verwendet, finden Sie unter Anzeigen von Objekt-, Instanz- und Zählernamen.