Функция EnableThreadProfiling (winbase.h)
Включает профилирование потока в указанном потоке.
Синтаксис
DWORD EnableThreadProfiling(
[in] HANDLE ThreadHandle,
[in] DWORD Flags,
[in] DWORD64 HardwareCounters,
[out] HANDLE *PerformanceDataHandle
);
Параметры
[in] ThreadHandle
Дескриптор потока, в котором требуется включить профилирование. Это должен быть текущий поток.
[in] Flags
Чтобы получить данные профилирования потока, такие как число переключения контекста, задайте для этого параметра значение THREAD_PROFILING_FLAG_DISPATCH; В противном случае задайте значение 0.
[in] HardwareCounters
Чтобы получить данные счетчика производительности оборудования, задайте для этого параметра битовую маску, которая идентифицирует собираемые счетчики оборудования. Можно указать до 16 счетчиков производительности. Каждый бит напрямую связан с отсчитывающим от нуля индексом счетчиков оборудования для настроенных счетчиков производительности оборудования. Если вы не собираете данные счетчиков оборудования, задайте значение 0. Если задать бит для аппаратного счетчика, который не был настроен, значение счетчика, считываемое для этого счетчика, равно нулю.
[out] PerformanceDataHandle
Непрозрачный дескриптор, используемый при вызове функций ReadThreadProfilingData и DisableThreadProfiling .
Возвращаемое значение
Возвращает ERROR_SUCCESS, если вызов выполнен успешно; в противном случае — код системной ошибки (см. Winerror.h).
Комментарии
Перед выходом из потока необходимо вызвать функцию DisableThreadProfiling .
Для профилирования счетчиков производительности оборудования требуется драйвер для настройки счетчиков. Счетчики производительности настраиваются глобально для системы, поэтому каждый поток имеет доступ к одинаковым данным счетчиков оборудования. Счетчики необходимо настроить перед включением профилирования. Сведения о настройке счетчиков производительности оборудования см. в разделе Функция KeSetHardwareCounterConfiguration в комплекте драйверов Windows (WDK).
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |