次の方法で共有


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 前の呼び出しからこのポインターを取得しました。

戻り値

何一つ

備考

注意

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

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

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

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

詳細については、「ルックアサイド リストの使用 」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 以降で使用できます。
ターゲット プラットフォーム デスクトップ
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI コンプライアンス規則 する spIrql(storport) する

関連項目

ExAllocateFromNPagedLookasideList

ExDeleteNPagedLookasideList

ExInitializeNPagedLookasideList

NPAGED_LOOKASIDE_LIST