次の方法で共有


ExFreeToPagedLookasideList 関数 (wdm.h)

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

構文

void ExFreeToPagedLookasideList(
  [in, out] PPAGED_LOOKASIDE_LIST Lookaside,
  [in]      PVOID                 Entry
);

パラメーター

[in, out] Lookaside

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

[in] Entry

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

戻り値

何一つ

備考

注意

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

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

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

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

Windows 2000 では、ドライバーは -D_WIN2K_COMPAT_SLIST_USAGE スイッチを使用して、ExFreeToPagedLookasideListを使用するコードを正常にリンクする必要があります。

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

必要条件

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

関連項目

ExAllocateFromPagedLookasideList

ExDeletePagedLookasideList する

ExInitializePagedLookasideList

PAGED_LOOKASIDE_LIST