Freigeben über


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

Weitere Informationen

PerfDeleteInstance

PerfQueryInstance