FsRtlAllocateExtraCreateParameterFromLookasideList 関数 (ntifs.h)
FsRtlAllocateExtraCreateParameterFromLookasideList ルーチンは、追加の create パラメーター (ECP) コンテキスト構造のために特定のルックアサイド リストからメモリ プールを割り当て、その構造体へのポインターを生成します。
構文
NTSTATUS FsRtlAllocateExtraCreateParameterFromLookasideList(
[in] LPCGUID EcpType,
[in] ULONG SizeOfContext,
[in] FSRTL_ALLOCATE_ECP_FLAGS Flags,
[in, optional] PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
[in, out] PVOID LookasideList,
[out] PVOID *EcpContext
);
パラメーター
[in] EcpType
コンテキスト構造を割り当てる必要がある ECP の型を示す GUID へのポインター。 ECP の詳細については、「IRP_MJ_CREATE操作での追加の作成パラメーターの使用
[in] SizeOfContext
ECP コンテキスト構造のサイズ (バイト単位)。
[in] Flags
プールの割り当てオプションを定義します。
SizeOfContext パラメーターの値が、LookasideList パラメーターが指すルックアサイド リストのサイズ (バイト単位) より大きい場合、fsRtlAllocateExtraCreateParameterFromLookasideList はルックアサイド リストの代わりにシステム プールから ECP コンテキスト構造を割り当てます。 この場合、Flags パラメーターに FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA ビット フラグ値が含まれている場合、FsRtlAllocateExtraCreateParameterFromLookasideList によって割り当てられたシステム プールは、現在のプロセスのメモリ クォータに対して課金されます。 ビット フラグ値の詳細については、fsRtlAllocateExtraCreateParameterの
[in, optional] CleanupCallback
PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK型のミニフィルター定義クリーンアップ コールバック ルーチンへの省略可能なポインター。 クリーンアップ コールバック ルーチンは、ECP コンテキスト構造が削除されるときに呼び出されます。 クリーンアップ コールバック ルーチンが適用できない場合は、このパラメーターを NULL を
[in, out] LookasideList
FsRtlAllocateExtraCreateParameterFromLookasideList がプールの割り当てを試行 初期化されたルックアサイド リストへのポインター (ECP コンテキスト構造の場合)。 ルックアサイド リストを初期化するには、FsRtlInitExtraCreateParameterLookasideList ルーチンを使用します。
[out] EcpContext
割り当てられた ECP コンテキスト構造体へのポインターを受け取る場所へのポインター。 FsRtlAllocateExtraCreateParameterFromLookasideList
戻り値
FsRtlAllocateExtraCreateParameterFromLookasideList ルーチンは、次のいずれかの値を返すことができます。
リターン コード | 形容 |
---|---|
STATUS_INSUFFICIENT_RESOURCES |
FsRtlAllocateExtraCreateParameterFromLookasideList ルーチンは、ECP コンテキスト構造に十分なメモリを割り当てませんでした。 この場合、 |
STATUS_SUCCESS | ECP コンテキスト構造が正常に割り当てられました。 この場合、fsRtlAllocateExtraCreateParameterFromLookasideList |
備考
FsRtlInitExtraCreateParameterLookasideList ルーチンを使用して、ページプールのルックアサイド リストまたは非ページ プールルックアサイド リストを初期化します。 FsRtlAllocateExtraCreateParameterFromLookasideList ルーチンを使用してルックアサイド リストから ECP コンテキスト構造を割り当て、FsRtlFreeExtraCreateParameter ルーチンを使用して ECP コンテキスト構造体の割り当てを解除します。
FsRtlDeleteExtraCreateParameterLookasideList ルーチンを使用して、ルックアサイド リストを解放します。
ドライバーは、アンロードする前に作成するすべての ECP コンテキスト構造とルックアサイド リストを解放する必要があります。 ただし、ファイル システムまたはファイル システム フィルター ドライバーが、IRP_MJ_CREATE 要求の処理中に既存または新しく作成された ECP_LIST に ECP をアタッチすると、IRP が完了すると、この ECP が自動的にクリーンアップされます。 その結果、フィルター ドライバーは、動的に追加される ECP をクリーンアップする必要はありません。 これにより、フィルター ドライバーの ECP を再解析ポイント間で適切に伝達できます。これは、複数の IRP_MJ_CREATE 要求を生成する必要があるプロセスです。
ドライバーでルックアサイド リストを使用する方法の詳細については、「ルックアサイド リストを使用する」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | FsRtlAllocateExtraCreateParameterFromLookasideList は、Windows Vista 以降で使用できます。 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
関連項目
FsRtlDeleteExtraCreateParameterLookasideList