次の方法で共有


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で、ResourceTypeEventBufferPHYSICAL_COUNTER_RESOURCE_DESCRIPTOR_TYPEを指定するPHYSICAL_COUNTER_RESOURCE_DESCRIPTOR型の構造体を指定します。

このコールバックは、IRQL = PROFILE_LEVELで呼び出されます。 これは、常にメモリ常駐である必要があります。 コールバックは、可能な限り迅速に返す必要があり、次のいずれかを実行しないようにする必要があります。

  • スピン ロックを取得または解放します。

  • メモリ内でロックされていないページ プールにアクセスする

  • ページング可能なルーチンを呼び出します。

コールバックは、HAL によって処理されるため、オーバーフロー レジスタのクリアを処理する必要はありません。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 1903
Header ntddk.h
IRQL PROFILE_LEVEL