英語で読む

次の方法で共有


ExAllocateFromPagedLookasideList 関数 (wdm.h)

ExAllocateFromPagedLookasideList ルーチンは、指定されたルックアサイド リストからページングされたエントリへのポインターを返すか、新しく割り当てられたページング されたエントリへのポインターを返します。

構文

C++
PVOID ExAllocateFromPagedLookasideList(
  [in, out] PPAGED_LOOKASIDE_LIST Lookaside
);

パラメーター

[in, out] Lookaside

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

戻り値

ExAllocateFromPagedLookasideList 、割り当て可能な場合は、エントリへのポインターを返します。 それ以外の場合は、null 返します。

備考

注意事項

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

指定したルックアサイド リストが空でない場合は、ExAllocateFromPagedLookasideList リストから最初のエントリを削除し、このエントリへのポインターを返します。 それ以外の場合、ExAllocateFromPagedLookasideList は、リストの初期化時に指定された Allocate ルーチンを呼び出すか、ExAllocatePoolWithTag してエントリ ポインターを返します。

呼び出し元は、呼び出し元によって決定されたデータを使用して、返されたエントリを設定できます。 呼び出し元は、ExFreeToPagedLookasideList が使用されなくなったときに、各エントリを解放する必要があります。

ページングされたルックアサイド リストのエントリはページング可能なメモリから割り当てられるため、IRQL >= DISPATCH_LEVELでアクセスすることはできません。 ExAllocateFromNPagedLookasideList 使用して、ページングできないエントリを含むルックアサイド リストを作成できます。

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

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

必要条件

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

関連項目

ExAllocateFromNPagedLookasideList

ExFreeToPagedLookasideList

ExInitializePagedLookasideList

PAGED_LOOKASIDE_LIST