PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER callback function (ntddk.h)
The PPHYSICAL_COUNTER_OVERFLOW_HANDLER is implemented by the client driver to handle event buffer overflows from the counters resources acquired through the HalAllocateHardwareCounters routine.
Syntax
PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER PphysicalCounterEventBufferOverflowHandler;
void PphysicalCounterEventBufferOverflowHandler(
PVOID EventBuffer,
SIZE_T EntrySize,
SIZE_T NumberOfEntries,
HANDLE OwningHandle
)
{...}
Parameters
EventBuffer
Provides a pointer to the event buffer containing the event entries.
EntrySize
Provides the size of an individual event entry.
NumberOfEntries
Provides the number of entries available.
OwningHandle
Provides the HANDLE corresponding to the resource set the event buffer belongs to.
Return value
None
Remarks
Register your implementation of this callback function by calling HalAllocateHardwareCounters with a structure of type PHYSICAL_COUNTER_RESOURCE_LIST. In the PHYSICAL_COUNTER_RESOURCE_LIST, provide a structure of type PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR that specifies a PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPE of ResourceTypeEventBuffer.
This callback is called at IRQL = PROFILE_LEVEL. This means it must always be memory-resident. The callback should return as quickly as possible and should not attempt to do any of the following.
Acquire or release spin locks.
Access paged pool that is not locked in memory
Call a pageable routine.
The callback does not need to handle clearing any overflow registers as it will be handled by the HAL.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10, version 1903 |
Header | ntddk.h |
IRQL | PROFILE_LEVEL |