KsCreateDefaultAllocatorEx 関数 (ks.h)
指定したメモリ プールを使用し、内部ディスパッチ テーブル (KSDISPATCH_TABLE) を使用して IoGetCurrentIrpStackLocation(pIrp)->FileObject をこのアロケーターに関連付ける既定のアロケーターを作成します。
構文
KSDDKAPI NTSTATUS KsCreateDefaultAllocatorEx(
[in] PIRP Irp,
[in, optional] PVOID InitializeContext,
[in, optional] PFNKSDEFAULTALLOCATE DefaultAllocate,
[in, optional] PFNKSDEFAULTFREE DefaultFree,
[in, optional] PFNKSINITIALIZEALLOCATOR InitializeAllocator,
[in, optional] PFNKSDELETEALLOCATOR DeleteAllocator
);
パラメーター
[in] Irp
アロケーター作成要求が処理されている IRP が含まれます。
[in, optional] InitializeContext
必要に応じて、外部アロケーターで使用するコンテキストが含まれます。 これは、アロケーター コンテキストを作成するときに、省略可能な InitializeAllocator コールバックの初期化コンテキストとしてのみ使用されます。 パラメーターは、それ以外の場合は使用されません。 外部アロケーターが指定されていない場合は、このパラメーターを NULL に設定する必要があります。
[in, optional] DefaultAllocate
必要に応じて、既定のプール割り当ての代わりに使用される外部割り当て関数が含まれます。 これが NULL の場合、既定の割り当てが使用されます。
[in, optional] DefaultFree
必要に応じて、既定のプール割り当ての代わりに使用される外部の空き関数が含まれます。 外部アロケーターが指定されていない場合は、このパラメーターを NULL に設定する必要があります。
[in, optional] InitializeAllocator
必要に応じて、InitializeContext パラメーターが渡される外部アロケーター初期化関数を格納します。 この関数は、アロケーター フレームに基づいてアロケーター コンテキストを返す必要があります。 外部アロケーターが指定されていない場合は、このパラメーターを NULL に設定する必要があります。
[in, optional] DeleteAllocator
必要に応じて、外部アロケーターに使用される外部アロケーター削除関数が含まれます。 外部アロケーターが指定されていない場合は、このパラメーターを NULL に設定する必要があります。
戻り値
STATUS_SUCCESSを返します。それ以外の場合は、既定のアロケーターの作成エラーに関するエラーを返します。 IRP を完了したり、IRP の状態を設定したりしません。
注釈
このルーチンを呼び出す前に、 KSCREATE_ITEM_IRP_STORAGE(Irp) マクロは、このアロケーターの作成項目である KSOBJECT_CREATE_ITEM 構造体へのポインターを返す必要があります。 KsCreateDefaultAllocatorEx は、このマクロの戻り値を指すように FsContext を設定します。 そのため、 FsContext は、セキュリティ記述子のクエリまたは変更に後で使用できます。
ks.h には、KSCREATE_ITEM_IRP_STORAGE(Irp) と関連するマクロがあります。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ks.h (Ks.h を含む) |
Library | Ks.lib |