StopProfile
Funkcja StopProfile ustawia licznik na 0 (wyłączone) dla określonego poziomu profilowania.
PROFILE_COMMAND_STATUS PROFILERAPI StopProfile(
PROFILE_CONTROL_LEVEL Level,
unsigned int dwId);
Parametry
Level
Wskazuje poziom profilowania do którego ma być zastosowane zbieranie danych nt wydajności.Następujące moduły wyliczające PROFILE_CONTROL_LEVEL mogą zostać użyte do wskazania jednego z trzech poziomów, do których można zastosować zbieranie danych wydajności:
Moduł wyliczający |
Opis |
---|---|
PROFILE_GLOBALLEVEL |
Ustawienie poziomu globalnego dotyczy wszystkich procesów i wątków w przebiegu profilowania. |
PROFILE_PROCESSLEVEL |
Ustawienie poziomu procesu dotyczy wszystkich wątków, które stanowią część określonego procesu. |
PROFILE_THREADLEVEL |
Ustawienie poziomu profilowania wątku dotyczy określonego wątku. |
dwId
Identyfikator procesu lub wątku generowany przez system.
Wartość właściwości/Zwracana wartość
Funkcja określa sukces lub niepowodzenie przy użyciu wyliczenia PROFILE_COMMAND_STATUS.Zwracana wartość może być jedną z następujących:
Moduł wyliczający |
Opis |
---|---|
PROFILE_ERROR_ID_NOEXIST |
Identyfikator elementu profilowania nie istnieje. |
PROFILE_ERROR_LEVEL_NOEXIST |
Określony poziom profilowania nie istnieje. |
PROFILE_ERROR_MODE_NEVER |
Tryb profilowania został ustawiony na NEVER, gdy funkcja została wywołana. |
PROFILE_ERROR_NOT_YET_IMPLEMENTED |
Wywołanie funkcji profilowania, poziom profilowania lub połączenie wywołania z poziomem nie jest jeszcze zaimplementowane. |
PROFILE_OK |
Wywołanie zakończyło się pomyślnie. |
Uwagi
StartProfile i StopProfile kontrolują stan Start/Stop poziomu profilowania.Wartość domyślna Start/Stop to 1.W rejestrze można zmienić wartość początkową.Każde wywołanie StartProfile ustawia Start/Stop na 1; Każde wywołanie StopProfile ustawia ją na 0.
Kiedy Start/Stop jest większe od 0, stan Start/Stop dla poziomu to ON.Gdy jest mniejsze lub równe 0 stan Start/Stop to OFF.
Gdy zarówno stan Start/Stop i stan Wstrzymaj/Wznów są włączone, stan profilowania dla poziomu to ON.Dla profilowanego wątku, stany wątku: globalny, procesu i poziomu muszą być włączone.
Odpowiednik w programie .NET Framework
Microsoft.VisualStudio.Profiler.dll
Informacje o funkcji
Nagłówek: Zadeklarowany w VSPerf.h
Importowana biblioteka: VSPerf.lib
Przykład
Poniższy przykład demonstruje metodę StopProfile.W przykładzie założono, że wywołano metodę StartProfile dla tego samego wątku lub procesu zidentyfikowanego przez PROFILE_CURRENTID.
void ExerciseStopProfile()
{
// StartProfile and StopProfile control the
// Start/Stop state for the profiling level.
// The default initial value of Start/Stop is 1.
// The initial value can be changed in the registry.
// Each call to StartProfile sets Start/Stop to 1;
// each call to StopProfile sets it to 0.
// Variables used to print output.
HRESULT hResult;
TCHAR tchBuffer[256];
// Declare enumeration to hold result of call
// to StopProfile.
PROFILE_COMMAND_STATUS profileResult;
profileResult = StopProfile(
PROFILE_THREADLEVEL,
PROFILE_CURRENTID);
// Format and print result.
LPCTSTR pszFormat = TEXT("%s %d.\0");
TCHAR* pszTxt = TEXT("StopProfile returned");
hResult = StringCchPrintf(tchBuffer, 256, pszFormat,
pszTxt, profileResult);
#ifdef DEBUG
OutputDebugString(tchBuffer);
#endif
}