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


Функция 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

См. также

DisableThreadProfiling

QueryThreadProfiling

ReadThreadProfilingData