KSDATAFORMAT 構造体 (ks.h)
KSDATAFORMAT 構造体は、データ形式を記述する可変長構造体です。
構文
typedef struct {
ULONG FormatSize;
ULONG Flags;
ULONG SampleSize;
ULONG Reserved;
GUID MajorFormat;
GUID SubFormat;
GUID Specifier;
} KSDATAFORMAT, *PKSDATAFORMAT, KSDATARANGE, *PKSDATARANGE;
メンバーズ
FormatSize
KSDATAFORMAT 構造体のサイズをバイト単位で指定します。 (KSDATAFORMAT) の sizeof以上にする必要がありますが、MajorFormat 、SubFormat、およびSpecifierの特定の設定では大きくすることができます。 詳細については、これらのメンバーの説明を参照してください。
Flags
KSDATAFORMAT の後に KSATTRIBUTE 構造体の KSMULTIPLE_ITEM が続く場合は、フラグを KSDATAFORMAT_ATTRIBUTES (0x2) に設定します。
SampleSize
固定サンプル サイズのデータのサンプル サイズを指定します。形式に可変のサンプル サイズがある場合は 0 を指定します。
Reserved
システム用に予約されています。 ドライバーは、このメンバーを 0 に設定する必要があります。
MajorFormat
一般的な書式の種類を指定します。 現在サポートされているデータ形式は、Windows Driver Kit (WDK) に含まれている ksmedia.h ヘッダー ファイルのKSDATAFORMAT_TYPE_XXXシンボリック定数にあります。 特定の形式を持たないデータ ストリームでは、KSDATAFORMAT_TYPE_STREAM (ks.hで定義) を MajorFormatの値として使用する必要があります。 このメンバーの詳細については、解説を参照してください。
SubFormat
一般的な書式の種類のサブフォーマットを指定します。 現在サポートされているデータ サブフォーマットは、WDK に含まれる ksmedia.h ヘッダー ファイルの KSDATAFORMAT_SUBTYPE_XXX シンボリック定数にあります。 サブフォーマットをサポートしないメジャー形式では、このメンバーのKSDATAFORMAT_SUBTYPE_NONE値を使用する必要があります。 このメンバーの詳細については、解説を参照してください。
Specifier
MajorFormat および SubFormatの特定の設定に関する追加のデータ形式の型情報を指定します。 このフィールドの意味は、メジャー形式 (および、メジャー形式がサブフォーマットをサポートしている場合はサブフォーマット) によって決定されます。 たとえば、指定子 は、サブフォーマットの特定のエンコーディングを表すことができます。また、メモリ内の KSDATAFORMAT に続くデータ構造の種類を指定するために使用できます。
次の指定子 (ks.hで定義) は一般的に使用されます。
KSDATAFORMAT_SPECIFIER_NONE
指定子を表しません。 指定子をサポートしない形式に使用されます。
KSDATAFORMAT_SPECIFIER_FILENAME
null で終わる Unicode 文字列が、メモリ内の KSDATAFORMAT 構造体の直後にあることを示します。
KSDATAFORMAT_SPECIFIER_FILEHANDLE
ファイル ハンドルがメモリ内の KSDATAFORMAT の直後にあることを示します。
備考
少なくとも、データ形式は、MajorFormat、SubFormat、および Specifier メンバーによって指定されます。 同様のデータ形式のファミリは、MajorFormat、SubFormat、および Specifierで同じ値を共有できます。 その場合、特定のデータ形式は、メモリ内の 指定子 メンバーに続く追加のデータによって区別されます。
MajorFormat 、SubFormat、および Specifier の組み合わせの一覧については、「ストリーム カテゴリの とそのサブトピック」を参照してください。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ks.h (Ks.h を含む) |