Поделиться через


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 (машинный код)