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 を含む) |