Недокументированные функции NTDLL

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