ExAllocateFromPagedLookasideList 関数 (wdm.h)
ExAllocateFromPagedLookasideList ルーチンは、指定されたルックアサイド リストからページングされたエントリへのポインターを返すか、新しく割り当てられたページング されたエントリへのポインターを返します。
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 の