Freigeben über


PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER Rückruffunktion (ntddk.h)

Die PPHYSICAL_COUNTER_OVERFLOW_HANDLER wird vom Clienttreiber implementiert, um Ereignispufferüberläufe aus den Leistungsindikatorenressourcen zu verarbeiten, die über die HalAllocateHardwareCounters-Routine abgerufen wurden.

Syntax

PPHYSICAL_COUNTER_EVENT_BUFFER_OVERFLOW_HANDLER PphysicalCounterEventBufferOverflowHandler;

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

Parameter

EventBuffer

Stellt einen Zeiger auf den Ereignispuffer bereit, der die Ereigniseinträge enthält.

EntrySize

Gibt die Größe eines einzelnen Ereigniseintrags an.

NumberOfEntries

Gibt die Anzahl der verfügbaren Einträge an.

OwningHandle

Stellt den HANDLE bereit, der dem Ressourcensatz entspricht, zu dem der Ereignispuffer gehört.

Rückgabewert

Keine

Bemerkungen

Registrieren Sie Ihre Implementierung dieser Rückruffunktion, indem Sie HalAllocateHardwareCounters mit einer Struktur vom Typ PHYSICAL_COUNTER_RESOURCE_LIST aufrufen. Geben Sie im PHYSICAL_COUNTER_RESOURCE_LIST eine Struktur vom Typ PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR an, die eine PHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPEresourceTypeEventBuffer angibt.

Dieser Rückruf wird unter IRQL = PROFILE_LEVEL aufgerufen. Dies bedeutet, dass es immer speicherresident sein muss. Der Rückruf sollte so schnell wie möglich zurückgegeben werden, und es sollte nicht versucht werden, eine der folgenden Aktionen auszuführen.

  • Erwerben oder Freigeben von Spinsperren.

  • Zugriff auf ausgelagerten Pool, der nicht im Arbeitsspeicher gesperrt ist

  • Aufrufen einer ausgelagerten Routine.

Der Rückruf muss das Löschen von Überlaufregistern nicht verarbeiten, da er von der HAL behandelt wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1903
Kopfzeile ntddk.h
IRQL PROFILE_LEVEL