функция обратного вызова PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER (ntddk.h)

PPHYSICAL_COUNTER_OVERFLOW_HANDLER реализуется драйвером клиента для обработки переполнения буфера событий из ресурсов счетчиков, приобретенных с помощью процедуры HalAllocateHardwareCounters.

Синтаксис

PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER PphysicalCounterEventBufferOverflowHandler;

VOID PphysicalCounterEventBufferOverflowHandler(
  PVOID EventBuffer,
  SIZE_T EntrySize,
  SIZE_T NumberOfEntries,
  HANDLE OwningHandle
)
{...}

Параметры

EventBuffer

Предоставляет указатель на буфер событий, содержащий записи события.

EntrySize

Предоставляет размер отдельной записи события.

NumberOfEntries

Предоставляет количество доступных записей.

OwningHandle

Предоставляет HANDLE, соответствующие набору ресурсов, к которому принадлежит буфер событий.

Возвращаемое значение

Никакой

Замечания

Зарегистрируйте реализацию этой функции обратного вызова, вызвав HalAllocateHardwareCounters со структурой типа PHYSICAL_COUNTER_RESOURCE_LIST. В PHYSICAL_COUNTER_RESOURCE_LISTукажите структуру типа PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR, указывающую PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPEResourceTypeEventBuffer.

Этот обратный вызов вызывается в IRQL = PROFILE_LEVEL. Это означает, что это всегда должно быть резидентом памяти. Обратный вызов должен возвращаться как можно быстрее и не должен пытаться выполнить одно из следующих действий.

  • Получение или освобождение блокировок спина.

  • Доступ к пулу страниц, который не заблокирован в памяти

  • Вызов подпрограммы, доступный для страниц.

Обратный вызов не требует обработки очистки регистров переполнения, так как он будет обрабатываться HAL.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10 версии 1903
заголовка ntddk.h
IRQL PROFILE_LEVEL