PerfCreateInstance-Funktion (perflib.h)
Erstellt eine instance des angegebenen Leistungsindikatorsatzes. Anbieter verwenden diese Funktion.
Syntax
PPERF_COUNTERSET_INSTANCE PerfCreateInstance(
[in] HANDLE ProviderHandle,
[in] LPCGUID CounterSetGuid,
[in] PCWSTR Name,
[in] ULONG Id
);
Parameter
[in] ProviderHandle
Das Handle des Anbieters. Verwenden Sie die Handle-Variable, die das CTRPP-Tool für Sie generiert hat. Den Namen der Variablen finden Sie im Symbol-Attribut des provider-Elements .
Windows Vista: Die PerfStartProvider-Funktion gibt das Handle zurück.
[in] CounterSetGuid
GUID, die den Zählersatz eindeutig identifiziert, für den Sie eine instance erstellen möchten. Dies ist die gleiche GUID, die im guid-Attribut des counterSet-Elements angegeben ist. Verwenden Sie die GUID-Variable, die das CTRPP-Tool für Sie generiert hat. Den Namen der Variablen finden Sie im Symbol-Attribut des counterSet-Elements .
Windows Vista: Die GUID-Variable ist nicht verfügbar.
[in] Name
Mit Null beendete Unicode-Zeichenfolge, die einen eindeutigen Namen für diese instance enthält.
[in] Id
Eindeutiger Bezeichner für diesen instance des Zählersatzes. Der Bezeichner kann eine Seriennummer sein, die Sie für jede neue instance inkrementieren.
Rückgabewert
Eine PERF_COUNTERSET_INSTANCE-Struktur, die die instance des Zählersatzes oder NULL enthält, wenn PERFLIB die instance nicht erstellen konnte. Speichern Sie diesen Zeiger zwischen, um sie in späteren Aufrufen zu verwenden, anstatt PerfQueryInstance aufzurufen, um den Zeiger auf die instance abzurufen.
Diese Funktion gibt NULL zurück, wenn ein Fehler aufgetreten ist. Rufen Sie GetLastError auf, um den aufgetretenen Fehler zu ermitteln.
Hinweise
Der Anbieter bestimmt, wann er eine instance erstellt. Wenn die Zählerdaten statischer sind, kann der Anbieter zum Zeitpunkt der Initialisierung eine instance erstellen. Beispielsweise würde die Anzahl der Prozessoren auf einem Computer als statisch angesehen, sodass ein Anbieter, der Zählerdaten für Prozessoren bereitstellt, zur Initialisierungszeit eine instance für jeden Prozessor auf dem Computer erstellen könnte. Bei Leistungsindikatoren, die dynamischer sind, z. B. Datenträger- oder Prozessindikatoren, würden die Anbieter die neuen Instanzen als Reaktion darauf erstellen, dass ein neues USB-Gerät hinzugefügt oder ein neuer Prozess erstellt wird.
Wenn der Anbieter diese Funktion aufruft, ordnet PERFLIB lokalen Arbeitsspeicher für die neue instance zu und erstellt den instance-Block. PERFLIB löscht den Arbeitsspeicher, wenn der Anbieter die PerfDeleteInstance-Funktion aufruft .
Die instance enthält die Unformatierten Zählerdaten. Anbieter verwenden die folgenden drei Funktionen, um die Unformatierten Zählerdaten zu aktualisieren:
In der Regel hält der Anbieter die Zählerdaten jederzeit auf dem neuesten Stand. Alternativ kann der Anbieter die ControlCallback-Funktion implementieren und den PERF_COLLECT_START Anforderungscode verwenden , um die Updates auszulösen.Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | perflib.h |
Bibliothek | Advapi32.lib |
DLL | Advapi32.dll |