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