次の方法で共有


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) をサポートする必要があります。

必要条件

要件 価値
ヘッダー ks.h (Ks.h を含む)

関連項目

KsCreateAllocator