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


функция обратного вызова 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 , соответствующий набору ресурсов, к которому принадлежит буфер событий.

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

None

Remarks

Зарегистрируйте реализацию этой функции обратного вызова, вызвав 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