Freigeben über


PdhEnumObjectsA-Funktion (pdh.h)

Gibt eine Liste der Objekte zurück, die auf dem angegebenen Computer oder in der angegebenen Protokolldatei verfügbar sind.

Um Handles für Datenquellen zu verwenden, verwenden Sie die PdhEnumObjectsH--Funktion.

Syntax

PDH_FUNCTION PdhEnumObjectsA(
  [in]      LPCSTR  szDataSource,
  [in]      LPCSTR  szMachineName,
  [out]     PZZSTR  mszObjectList,
  [in, out] LPDWORD pcchBufferSize,
  [in]      DWORD   dwDetailLevel,
  [in]      BOOL    bRefresh
);

Parameter

[in] szDataSource

Null-Zeichenfolge-terminated, die den Namen der Protokolldatei angibt, die zum Aufzählen der Leistungsobjekte verwendet wird. Wenn NULL-, verwendet die Funktion den in

der szMachineName Parameter zum Aufzählen der Namen.

[in] szMachineName

Null-terminated string, der den Namen des Computers angibt, der zum Aufzählen der Leistungsobjekte verwendet wird.

Schließen Sie die führenden Schrägstriche in den Computernamen ein, z. B. "\computername".

Wenn der parameter szDataSourceNULList, können Sie szMachineName auf NULL- festlegen, um den lokalen Computer anzugeben.

[out] mszObjectList

Vom Aufrufer zugewiesener Puffer, der die Liste der Objektnamen empfängt. Jeder Objektname in dieser Liste wird durch ein NULL- Zeichen beendet. Die Liste wird mit zwei Nullzeichen-terminator beendet. Wird auf NULL- festgelegt, wenn der pcchBufferLength Parameter null ist.

[in, out] pcchBufferSize

Größe des mszObjectList- Puffers in TCHARs. Wenn null bei eingaben, gibt die Funktion PDH_MORE_DATA zurück und legt diesen Parameter auf die erforderliche Puffergröße fest. Wenn der Puffer größer als die erforderliche Größe ist, legt die Funktion diesen Parameter auf die tatsächliche Größe des verwendeten Puffers fest. Wenn die angegebene Größe für die Eingabe größer als null, aber kleiner als die erforderliche Größe ist, sollten Sie nicht auf die zurückgegebene Größe zurückgreifen, um den Puffer neu zuzuweisen.

Windows XP: Fügen Sie der erforderlichen Puffergröße eins hinzu.

[in] dwDetailLevel

Detailebene der zurückzugebenden Leistungselemente. Alle Elemente, die der angegebenen Detailebene entsprechen, werden zurückgegeben (die Ebenen werden in zunehmender Reihenfolge aufgeführt). Dieser Parameter kann einer der folgenden Werte sein:

Wert Bedeutung
PERF_DETAIL_NOVICE
Anfängerebene des Details.
PERF_DETAIL_ADVANCED
Erweiterte Detailebene des Benutzers.
PERF_DETAIL_EXPERT
Experten-Detailebene.
PERF_DETAIL_WIZARD
Detailebene des Systemdesigners.

[in] bRefresh

Gibt an, ob die zwischengespeicherte Objektliste automatisch aktualisiert werden soll. Geben Sie einen der folgenden Werte an.

Wenn Sie diese Funktion zweimal aufrufen, legen Sie diesen Parameter einmal fest, um die Größe der Liste und ein zweites Mal abzurufen, um die tatsächliche Liste abzurufen, diesen Parameter auf TRUE für den ersten Aufruf und FALSE- für den zweiten Aufruf festzulegen. Wenn beide Aufrufe TRUEsind, gibt der zweite Aufruf möglicherweise auch PDH_MORE_DATA zurück, da sich die Objektdaten zwischen Aufrufen möglicherweise geändert haben.

Wert Bedeutung
TRUE-
Der Objektcache wird automatisch aktualisiert, bevor die Objekte zurückgegeben werden.
FALSE-
Aktualisieren Sie den Cache nicht automatisch.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird ERROR_SUCCESS zurückgegeben.

Wenn die Funktion fehlschlägt, ist der Rückgabewert ein Systemfehlercode oder ein PDH-Fehlercode. Im Folgenden sind mögliche Werte aufgeführt.

Rückgabecode Beschreibung
PDH_MORE_DATA
Der mszObjectList Puffer ist zu klein, um die Liste der Objekte zu speichern. Dieser Rückgabewert wird erwartet, wenn pcchBufferLength bei eingaben null ist. Wenn die angegebene Größe für die Eingabe größer als null, aber kleiner als die erforderliche Größe ist, sollten Sie nicht auf die zurückgegebene Größe zurückgreifen, um den Puffer neu zuzuweisen.
PDH_CSTATUS_NO_MACHINE
Der angegebene Computer ist offline oder nicht verfügbar.
PDH_CSTATUS_NO_OBJECT
Das angegebene Objekt konnte nicht gefunden werden.
PDH_INVALID_ARGUMENT
Ein Parameter ist ungültig. Bei einigen Versionen können Sie diesen Fehler z. B. erhalten, wenn die angegebene Größe für die Eingabe größer als 0, aber kleiner als die erforderliche Größe ist.

Bemerkungen

Sie sollten diese Funktion zweimal aufrufen, zum ersten Mal, um die erforderliche Puffergröße abzurufen (legen Sie mszObjectList auf NULL- und pcchBufferLength auf 0 fest), und das zweite Mal, um die Daten abzurufen.

Anmerkung

Der pdh.h-Header definiert PdhEnumObjects als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows Server 2003 [Nur Desktop-Apps]
Zielplattform- Fenster
Header- pdh.h
Library Pdh.lib
DLL- Pdh.dll

Siehe auch

PdhEnumObjectItems

PdhEnumObjectsH