24 февраля 2001
NtCreateProfile (ZwCreateProfile)
NTSYSAPI
NTSTATUS
NTAPI
NtCreateProfile(
OUT PHANDLE ProfileHandle,
IN HANDLE Process OPTIONAL,
IN PVOID ImageBase,
IN ULONG ImageSize,
IN ULONG BucketSize,
IN PVOID Buffer,
IN ULONG BufferSize,
IN KPROFILE_SOURCE ProfileSource,
IN KAFFINITY Affinity );
Функция NtCreateProfile создаёт объект "Профиль".
Объекты "Профиль" используются для профилирования приложений. Есть 24 счётчиков профилей, определённых в перечислимом типе KPROFILE_SOURCE. Один объект "Профиль" может использоваться для получения информации об одном счётчике производительности.
ProfileHandle
Результат вызова: HANDLE объекта "Профиль".
Process
HANDLE процесса, у которого осуществляется профилирование. Не требуется, если профилированный код помещён в адресное пространство ядра (больше, чем 0x80000000).
ImageBase
Начальный адрес профилирования.
ImageSize
Размер профилируемого блока памяти.
BucketSize
- ??? (не может быть менее 2).
Buffer
Буфер данных, память для которого выделена заранее.
BufferSize
Размер буфера, в байтах.
ProfileSource
Идентификатор счётчика производительности. См. возможные значения в описании перечислимого типа KPROFILE_SOURCE.
Affinity
Маска процессоров. Определяет процессоры, которые будут опрашивать счётчик производительности.
Документировал:
Томаш Новак
Зависимости:
Библиотека: ntdll.lib
Привилегии для пользовательского режима: SE_PROF_SINGLE_PROCESS_PRIVILEGE
Привилегии для режима ядра: SE_SYSTEM_PROFILE_PRIVILEGE
См. также:
KPROFILE_SOURCE
NtQueryIntervalProfile
NtSetIntervalProfile
NtStartProfile
NtStopProfile