Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Alla PDH-funktioner (Performance Data Helper) returnerar ett värde av typen PDH_STATUS. Om funktionen lyckas är returvärdet ERROR_SUCCESS. Annars returnerar funktionen en systemfelkod eller en PDH-felkod. Om du vill hämta beskrivningstexten för felet i ditt program använder du funktionen FormatMessage enligt följande exempel.
#include <windows.h>
#include <stdio.h>
#include <pdhmsg.h>
void main(void)
{
HANDLE hPdhLibrary = NULL;
LPWSTR pMessage = NULL;
DWORD dwErrorCode = PDH_PLA_ERROR_ALREADY_EXISTS;
hPdhLibrary = LoadLibrary(L"pdh.dll");
if (NULL == hPdhLibrary)
{
wprintf(L"LoadLibrary failed with %lu\n", GetLastError());
return;
}
if (!FormatMessage(FORMAT_MESSAGE_FROM_HMODULE |
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_IGNORE_INSERTS,
hPdhLibrary,
dwErrorCode,
0,
(LPWSTR)&pMessage,
0,
NULL))
{
wprintf(L"Format message failed with 0x%x\n", GetLastError());
return;
}
wprintf(L"Formatted message: %ls\n", pMessage);
LocalFree(pMessage);
}
För datainsamlings- och formateringsfunktioner är det viktigt att komma ihåg att funktionens returvärde anger funktionsanropets framgång eller fel och inte nödvändigtvis räknardata. Kontrollera alltid CStatus medlem av räknarvärdet som returneras för att säkerställa att de data som returneras är giltiga innan du använder det. Om värdet för CStatus-medlemsvariabeln inte anger framgång, ska du inte använda datan.
Följande tabell innehåller en lista över felkoder som är specifika för PDH. Dessa värden definieras i pdhmsg.h-huvudfilen.
| Felkod | Beskrivning |
|---|---|
| 0x00000000 (PDH_CSTATUS_VALID_DATA) | De returnerade data är giltiga. |
| 0x00000001 (PDH_CSTATUS_NEW_DATA) | Returdatavärdet är giltigt och skiljer sig från det senaste exemplet. |
| 0x800007D0 (PDH_CSTATUS_NO_MACHINE) | Det går inte att ansluta till den angivna datorn eller så är datorn offline. |
| 0x800007D1 (PDH_CSTATUS_NO_INSTANCE) | Den angivna instansen finns inte. |
| 0x800007D2 (PDH_MORE_DATA) | Det finns mer data att returnera än vad som skulle passa i den angivna bufferten. Allokera en större buffert och anropa funktionen igen. |
| 0x800007D3 (PDH_CSTATUS_ITEM_INTE_VALIDERAD) | Dataobjektet har lagts till i frågan men har inte verifierats eller använts. Ingen annan statusinformation för det här dataobjektet är tillgänglig. |
| 0x800007D4 (PDH_RETRY) | Den valda åtgärden bör göras om. |
| 0x800007D5 (PDH_NO_DATA) | Inga data att returnera. |
| 0x800007D6 (PDH_CALC_NEGATIVE_DENOMINATOR) | En räknare med ett negativt nämnarvärde identifierades. |
| 0x800007D7 (PDH_CALC_NEGATIVE_TIMEBASE) | En räknare med ett negativt tidsbasvärde identifierades. |
| 0x800007D8 (PDH_CALC_NEGATIVE_VALUE) | En räknare med ett negativt värde har identifierats. |
| 0x800007D9 (PDH_DIALOG_AVBRUTEN) | Användaren avbröt dialogrutan. |
| 0x800007DA (PDH_END_OF_LOG_FILE) | Slutet på loggfilen har nåtts. |
| 0x800007DB (PDH_ASYNC_QUERY_TIMEOUT) | En timeout inträffade när man väntade på att den asynkrona räknarinsamlingstråden skulle avslutas. |
| 0x800007DC (PDH_KAN_INTE_STÄLLA_IN_STANDARD_REALTIDSDATASOURCE) | Det går inte att ändra standarddatakällan i realtid. Det finns frågesessioner i realtid som samlar in räknardata. |
| 0xC0000BB8 (PDH_CSTATUS_NO_OBJECT) | Det angivna objektet hittades inte i systemet. |
| 0xC0000BB9 (PDH_CSTATUS_NO_COUNTER) | Det gick inte att hitta den angivna räknaren. |
| 0xC0000BBA (PDH_CSTATUS_INVALID_DATA) | De returnerade data är ogiltiga. |
| 0xC0000BBB (PDH_MEMORY_ALLOCATION_FAILURE) | En PDH-funktion kunde inte allokera tillräckligt med tillfälligt minne för att slutföra åtgärden. Stäng vissa program eller utöka sidfilen och försök igen. |
| 0xC0000BBC (PDH_INVALID_HANDLE) | Handtaget är inte ett giltigt PDH-objekt. |
| 0xC0000BBD (PDH_INVALID_ARGUMENT) | Ett obligatoriskt argument saknas eller är felaktigt. |
| 0xC0000BBE (PDH_FUNCTION_NOT_FOUND) | Det går inte att hitta den angivna funktionen. |
| 0xC0000BBF (PDH_CSTATUS_NO_COUNTERNAME) | Ingen räknare har angetts. |
| 0xC0000BC0 (PDH_CSTATUS_BAD_COUNTERNAME) | Det går inte att parsa räknarsökvägen. Kontrollera formatet och syntaxen för den angivna sökvägen. |
| 0xC0000BC1 (PDH_INVALID_BUFFER) | Bufferten som skickas av anroparen är inte giltig. |
| 0xC0000BC2 (PDH_INSUFFICIENT_BUFFER) | Begärda data är större än bufferten som angetts. Det går inte att returnera begärda data. |
| 0xC0000BC3 (PDH_CANNOT_CONNECT_MACHINE) | Det går inte att ansluta till den begärda datorn. |
| 0xC0000BC4 (PDH_INVALID_PATH) | Det gick inte att tolka den angivna räknarsökvägen. |
| 0xC0000BC5 (PDH_INVALID_INSTANCE) | Det gick inte att läsa instansnamnet från den angivna räknarsökvägen. |
| 0xC0000BC6 (PDH_INVALID_DATA) | Data är ogiltiga. |
| 0xC0000BC7 (PDH_NO_DIALOG_DATA) | Dialogrutedatablocket saknades eller var ogiltigt. |
| 0xC0000BC8 (PDH_CANNOT_READ_NAME_STRINGS) | Det går inte att läsa räknaren och/eller hjälptexten från den angivna datorn. |
| 0xC0000BC9 (PDH_LOGG-FIL SKAPA FEL) | Det går inte att skapa den angivna loggfilen. |
| 0xC0000BCA (PDH_LOG_FILE_OPEN_ERROR) | Det går inte att öppna den angivna loggfilen. |
| 0xC0000BCB (PDH_LOG_TYPE_NOT_FOUND) | Den angivna loggfilstypen har inte installerats på det här systemet. |
| 0xC0000BCC (PDH_NO_MORE_DATA) | Inga fler data är tillgängliga. |
| 0xC0000BCD (PDH_ENTRY_NOT_IN_LOG_FILE) | Den angivna posten hittades inte i loggfilen. |
| 0xC0000BCE (PDH_DATA_SOURCE_IS_LOG_FILE) | Den angivna datakällan är en loggfil. |
| 0xC0000BCF (PDH_DATA_SOURCE_IS_REAL_TIME) | Den angivna datakällan är den aktuella aktiviteten. |
| 0xC0000BD0 (PDH_KAN_INTE_LÄSA_LOGGARHUVUD) | Det gick inte att läsa loggfilshuvudet. |
| 0xC0000BD1 (PDH_FILE_NOT_FOUND) | Det går inte att hitta den angivna filen. |
| 0xC0000BD2 (PDH_FILE_ALREADY_EXISTS) | Det finns redan en fil med det angivna filnamnet. |
| 0xC0000BD3 (PDH_INTE_IMPLEMENTERAD) | Funktionen som refereras har inte implementerats. |
| 0xC0000BD4 (PDH_STRING_NOT_FOUND) | Det går inte att hitta den angivna strängen i listan över prestandanamn och hjälptextsträngar. |
| 0x80000BD5 (PDH_KAN_INTE_MAPPA_NAMNFILER) | Det går inte att mappa till filerna för prestandaräknarnamn. Data kommer att läsas från registret och lagras lokalt. |
| 0xC0000BD6 (PDH_UNKNOWN_LOG_FORMAT) | Formatet för den angivna loggfilen känns inte igen av PDH DLL. |
| 0xC0000BD7 (PDH_UNKNOWN_LOGSVC_COMMAND) | Det angivna log service-kommandovärdet känns inte igen. |
| 0xC0000BD8 (PDH_LOGSVC_QUERY_NOT_FOUND) | Det gick inte att hitta den angivna frågan från loggtjänsten eller så gick det inte att öppna den. |
| 0xC0000BD9 (PDH_LOGSVC_NOT_OPENED) | Det gick inte att öppna nyckeln för prestandadataloggtjänsten. Detta kan bero på otillräcklig behörighet eller på att tjänsten inte har installerats. |
| 0xC0000BDA (PDH_WBEM_ERROR) | Ett fel uppstod vid åtkomst till WBEM-datalagret. |
| 0xC0000BDB (PDH_ÅTKOMST_NEKAD) | Det går inte att komma åt önskad dator eller tjänst. Kontrollera behörigheter och autentisering för loggtjänsten eller den interaktiva användarsessionen mot dem på datorn eller tjänsten som övervakas. |
| 0xC0000BDC (PDH_LOG_FILE_TOO_SMALL) | Den maximala loggfilstorleken som angetts är för liten för att logga de valda räknarna. Inga data registreras i den här loggfilen. Ange en mindre uppsättning räknare för att logga eller en större filstorlek och försök igen med det här anropet. |
| 0xC0000BDD (PDH_INVALID_DATASOURCE) | Det går inte att ansluta till ODBC DataSource Name. |
| 0xC0000BDE (PDH_INVALID_SQLDB) | SQL Database innehåller inte en giltig uppsättning tabeller för Perfmon. |
| 0xC0000BDF (PDH_NO_COUNTERS) | Inga räknare hittades för den här Sql-logguppsättningen för Perfmon. |
| 0xC0000BE0 (PDH_SQL_ALLOC_FAILED) | Anrop till SQLAllocStmt misslyckades med %1. |
| 0xC0000BE1 (PDH_SQL_ALLOCCON_FAILED) | Anropet till SQLAllocConnect misslyckades med %1. |
| 0xC0000BE2 (PDH_SQL_EXEC_DIRECT_FAILED) | Anrop till SQLExecDirect misslyckades med %1. |
| 0xC0000BE3 (PDH_SQL_FETCH_FAILED) | Anropet till SQLFetch misslyckades med %1. |
| 0xC0000BE4 (PDH_SQL_ROWCOUNT_FAILED) | Anrop till SQLRowCount misslyckades med %1. |
| 0xC0000BE5 (PDH_SQL_MORE_RESULTS_FAILED) | Anropet till SQLMoreResults misslyckades med %1. |
| 0xC0000BE6 (PDH_SQL_CONNECT_FAILED) | Anropet till SQLConnect misslyckades med %1. |
| 0xC0000BE7 (PDH_SQL_BIND_FAILED) | Anrop till SQLBindCol misslyckades med %1. |
| 0xC0000BE8 (PDH_CANNOT_CONNECT_WMI_SERVER) | Det går inte att ansluta till WMI-servern på den begärda datorn. |
| 0xC0000BE9 (PDH_PLA_COLLECTION_ALREADY_RUNNING) (Datainsamling pågår redan) | Samlingen "%1!s!" körs redan. |
| 0xC0000BEA (PDH_PLA_ERROR_SCHEDULE_OVERLAP) | Den angivna starttiden är efter sluttiden. |
| 0xC0000BEB (PDH_PLA_COLLECTION_NOT_FOUND) | Samlingen "%1!s!" finns inte. |
| 0xC0000BEC (PDH_PLA_ERROR_SCHEDULE_ELAPSED) | Den angivna sluttiden har redan förflutit. |
| 0xC0000BED (PDH_PLA_ERROR_NOSTART) | Samlingen "%1!s!" startade inte; kontrollera om det finns fel i programhändelseloggen. |
| 0xC0000BEE (PDH_PLA_ERROR_ALREADY_EXISTS) | Samlingen "%1!s!" finns redan. |
| 0xC0000BEF (PDH_PLA_ERROR_TYPE_MISMATCH) | Det finns ett matchningsfel i inställningstypen. |
| 0xC0000BF0 (PDH_PLA_ERROR_FILEPATH) | Den angivna informationen resulterar inte i ett giltigt sökvägsnamn. |
| 0xC0000BF1 (PDH_PLA_SERVICE_ERROR) | Tjänsten "Prestandaloggar och varningar &" svarade inte. |
| 0xC0000BF2 (PDH_PLA_VALIDATION_ERROR) | Den information som skickas är inte giltig. |
| 0x80000BF3 (PDH_PLA_VALIDATION_WARNING) | Den information som skickas är inte giltig. |
| 0xC0000BF4 (PDH_PLA_ERROR_NAME_TOO_LONG) | Det angivna namnet är för långt. |
| 0xC0000BF5 (PDH_INVALID_SQL_LOG_FORMAT) | SQL-loggformatet är felaktigt. Rätt format är SQL:<DSN-name>!<LogSet-Name>. |
| 0xC0000BF6 (PDH_COUNTER_ALREADY_IN_QUERY) | Prestandaräknaren i PdhAddCounter-anrop har redan lagts till i prestandaförfrågan. Den här räknaren ignoreras. |
| 0xC0000BF7 (PDH_BINARY_LOG_CORRUPT) | Det går inte att läsa räknarinformation och data från binära indataloggfiler. |
| 0xC0000BF8 (PDH_LOG_SAMPLE_TOO_SMALL) | Minst en av de binära indataloggfilerna innehåller färre än två dataexempel. |
| 0xC0000BF9 (PDH_OS_LATER_VERSION) | Versionen av operativsystemet på datorn med namnet %1 är senare än den på den lokala datorn. Den här åtgärden är inte tillgänglig från den lokala datorn. |
| 0xC0000BFA (PDH_OS_EARLIER_VERSION) | %1 stöder %2 eller senare. Kontrollera operativsystemversionen på datorn med namnet %3. |
| 0xC0000BFB (PDH_INCORRECT_APPEND_TIME) | Utdatafilen måste innehålla tidigare data än den fil som ska läggas till. |
| 0xC0000BFC (PDH_UNMATCHED_APPEND_COUNTER - omatchad tilläggsräknare) | Båda filerna måste ha identiska räknare för att kunna läggas till. |
| 0xC0000BFD (PDH_SQL_ALTER_DETAIL_FAILED) | Det går inte att ändra tabelllayouten CounterDetail i SQL Database. |
| 0xC0000BFE (PDH_QUERY_PERF_DATA_TIMEOUT) | Systemet är upptaget. En timeout inträffade när räknardata skulle samlas in. Försök igen senare eller öka registervärdet CollectTime. |