次の方法で共有


KSALLOCATOR_FRAMING構造体 (ks.h)

KSALLOCATOR_FRAMING構造は、フレーム要件のクエリを実行し、アロケーター作成要求を送信するために使用されます。

構文

typedef struct {
  union {
    ULONG OptionsFlags;
    ULONG RequirementsFlags;
  };
#if ...
  POOL_TYPE PoolType;
#else
  ULONG     PoolType;
#endif
  ULONG     Frames;
  ULONG     FrameSize;
  union {
    ULONG FileAlignment;
    LONG  FramePitch;
  };
  ULONG     Reserved;
} KSALLOCATOR_FRAMING, *PKSALLOCATOR_FRAMING;

メンバー

OptionsFlags

接続ポイントのアロケーターの作成時に指定されたアロケーター オプション フラグを指定します。 OptionsFlags メンバーには、次のいずれかの値を含めることができます。

OptionsFlags 説明
KSALLOCATOR_OPTIONF_COMPATIBLE 作成されるアロケーターのフレーム オプションがダウンストリーム アロケーターと互換性があることを示します。 このオプションは、通常、インプレース修飾子にコピー バッファーのアロケーターが割り当てられている場合に指定されます。 特定のフレームを変更するためにフィルターが必要ない場合、このオプションを指定すると、ダウンストリーム アロケーターから追加のフレームを割り当てずに、フレームをダウンストリーム フィルターに送信できます。
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY システム メモリを割り当てに使用する必要があることを示します。 指定した場合、アロケーターは PoolType メンバーで指定されたプールからメモリを割り当てる必要があります。 それ以外の場合は、シンクによって、オンボード RAM またはデバイス上の他の形式のストレージへのシステム アドレス マッピングが提供されるものと想定されます。

RequirementsFlags

クエリ操作のこの接続ポイントのアロケーター要件を記述する ULONG 型の値。 RequirementsFlags メンバーには、次の値を含めることができます。

フラグ値 説明
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER 接続ポイントがインプレース変更を実行できることを示します。
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY 接続ポイントに割り当てにシステム メモリが必要であることを示します。 このオプションが設定されていない場合は、シンクによって、オンボード RAM またはデバイス上の他の形式のストレージへのシステム アドレス空間マッピングが提供されるものと見なされます。
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY 接続ポイントで、ダウンストリーム フィルターが指定したフレームのデータ整合性を維持する必要があることを示します。
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE 接続ポイントが送信されたフレームを割り当てる必要があることを示します。
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY Requirements フラグが基本設定のみであり、接続ポイントがこれらの仕様を満たしていないフレームを割り当てることができることを示します。

PoolType

カーネル モード割り当てプールの種類を指定する POOL_TYPE 型の構造体。

Frames

許容される未処理フレームの合計数を指定します。 0 は、フィルターにこのメンバーの要件がないことを示します。

FrameSize

プレフィックスと後置を含むフレームの合計サイズを指定します。 0 は、フィルターにこのメンバーの要件がないことを示します。

FileAlignment

フレームの割り当て時に使用するバイトアラインメントを記述する ULONG 型の値。 次の表では、考えられるいくつかの配置値について説明します。

説明
FILE_BYTE_ALIGNMENT 1 バイトのアラインメント
FILE_WORD_ALIGNMENT 2 バイトアラインメント
FILE_LONG_ALIGNMENT 4 バイトのアラインメント
FILE_32_BYTE_ALIGNMENT 32 バイトのアラインメント
FILE_64_BYTE_ALIGNMENT 64 バイトのアラインメント

FramePitch

Reserved

システムで使用するために予約されています。 0 に設定します。

注釈

KSALLOCATOR_FRAMINGを使用して、IRP_MJ_CREATEを使用してシンクのハンドルにアロケーター作成要求を送信します。

FileAlignment メンバーの値を指定すると、最小の割り当てアラインメントは 1 バイト (FILE_BYTE_ALIGNMENT) になります。 割り当てとして機能するソフトウェアでは、可能であれば 4 バイトのアラインメント (FILE_LONG_ALIGNMENT) をサポートする必要があります。

要件

要件
Header ks.h (Ks.h を含む)

こちらもご覧ください

KsCreateAllocator