ExFreeToNPagedLookasideList 関数 (wdm.h)

ExFreeToNPagedLookasideList ルーチンは、指定されたルックアサイド リストまたは非ページ プールに非ページ エントリを返します。

構文

void ExFreeToNPagedLookasideList(
  [in, out] PNPAGED_LOOKASIDE_LIST Lookaside,
  [in]      PVOID                  Entry
);

パラメーター

[in, out] Lookaside

呼び出し元が ExInitializeNPagedLookasideList で既に初期化されているルックアサイド リストのNPAGED_LOOKASIDE_LIST構造体へのポインター。

[in] Entry

解放するエントリへのポインター。 呼び出し元は、 ExAllocateFromNPagedLookasideList の前の呼び出しからこのポインターを取得しました。

戻り値

なし

解説

注意事項

バージョン 22H2 Windows 11以降、この関数はインラインからエクスポートに変更されました。 その結果、最新バージョンの Windows を対象とするドライバーをビルドすると、古い OS バージョンでは読み込みに失敗します。 Visual Studio でターゲット OS のバージョンを変更するには、[ 構成プロパティ] - [ドライバーの設定] ->> [全般] を選択します。

ExFreeToNPagedLookasideListExAllocateFromNPagedLookasideList の逆数です。 呼び出し元によって割り当てられたエントリは、呼び出し元のルックアサイド リストまたは非ページ プールに解放され、そのエントリが使用されなくなった場合は解放されます。

同じエントリを再割り当てすることも、後で ExAllocateFromNPagedLookasideList を呼び出して別のエントリを割り当てることもできます。 ルックアサイド リストのユーザーは、 ExDeleteNPagedLookasideList を呼び出すまで、このようなエントリを必要に応じて動的に割り当てて解放できます。このリストは、指定されたルックアサイド リストのシステム状態をクリアして制御を返す前に、リスト内の未処理のエントリをすべて解放します。

指定したルックアサイド リストがまだシステムによって決定されたエントリの最大数に達していない場合、 ExFreeToNPagedLookasideList は指定されたエントリをリストの先頭に挿入します。 それ以外の場合は、 び出し元が指定した Free ルーチン (存在する場合) を使用して、Entry のバッファーが非ページ プールに解放されます。このルーチンは、ルックアサイド リストが初期化されたとき、または ExFreePool が初期化されたときに設定されました。

詳細については、「Lookaside Listsの使用」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム デスクトップ
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 SpIrql(storport)

こちらもご覧ください

ExAllocateFromNPagedLookasideList

ExDeleteNPagedLookasideList

ExInitializeNPagedLookasideList

NPAGED_LOOKASIDE_LIST