StopProfile
Обновлен: Ноябрь 2007
Функция StopProfile устанавливает для счетчика значение 0 (off) для указанного уровня профилирования.
PROFILE_COMMAND_STATUS PROFILERAPI StopProfile(
PROFILE_CONTROL_LEVEL Level,
unsigned int dwId);
Параметры
Level
Указывает уровень профилирования, к которому можно применить сбор данных о производительности. Для указания одного из трех уровней, к которому можно применить сбор данных о производительности, следует использовать следующие перечислители PROFILE_CONTROL_LEVEL.
Перечислитель |
Описание |
---|---|
PROFILE_GLOBALLEVEL |
Установка глобального уровня оказывает влияние на все процессы и потоки при выполнении профилирования. |
PROFILE_PROCESSLEVEL |
Установка уровня процесса оказывает влияние на все потоки, являющиеся частью указанного процесса. |
PROFILE_THREADLEVEL |
Установка уровня профилирования потока влияет на заданный поток. |
dwId
Идентификатор процесса или потока, созданный системой.
Значение свойства или возвращаемое значение
Функция указывает на успешное выполнение или сбой посредством перечисления PROFILE_COMMAND_STATUS. Ниже перечислены возможные возвращаемые значения.
Перечислитель |
Описание |
---|---|
PROFILE_ERROR_ID_NOEXIST |
Идентификатор элемента профилирования не существует. |
PROFILE_ERROR_LEVEL_NOEXIST |
Заданный уровень профилирования не существует. |
PROFILE_ERROR_MODE_NEVER |
При вызове функции для режима профилирования было задано значение NEVER. |
PROFILE_ERROR_NOT_YET_IMPLEMENTED |
Вызов функции профилирования, уровень профилирования или сочетание вызова и уровня пока не реализованы. |
PROFILE_OK |
Вызов выполнен успешно. |
Заметки
Функции StartProfile и StopProfile управляют состоянием начала/остановки для уровня профилирования. По умолчанию счетчику начала/остановки присваивается значение 1. Начальное значение можно изменить в реестре. При каждом вызове функции StartProfile счетчику начала/остановки присваивается значение 1; при каждом вызове функции StopProfile этому счетчику присваивается значение 0.
Если значение счетчика начала/остановки больше 0, состояние начала/остановки для уровня равно значению ON. Если значение счетчика меньше или равно 0, состояние начала/остановки равно значению OFF.
Если состояния начала/остановки и приостановки/возобновления равны значению ON, состояние профилирования для данного уровня равно значению ON. Для профилируемого потока состояния глобального уровня, уровня процесса и потока должны быть равны значению ON.
Эквивалент в .NET Framework
Microsoft.VisualStudio.Profiler.dll
Сведения о функции
Заголовок: объявлен в файле VSPerf.h.
Библиотека импорта: VSPerf.lib
Пример
В следующем примере демонстрируется использование метода StopProfile. В примере предполагается, что ранее для потока или процесса, определенного идентификатором PROFILE_CURRENTID, был выполнен вызов метода StartProfile.
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
}
См. также
Другие ресурсы
Справочник по API-интерфейсам профилировщика Visual Studio (машинный код)