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 は、セキュリティ記述子のクエリまたは変更に後で使用できます。
KSCREATE_ITEM_IRP_STORAGE(Irp) および関連するマクロは、ks.hにあります。
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
ヘッダー | ks.h (Ks.h を含む) |
ライブラリ | Ks.lib |