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 構造体のサイズをバイト単位で指定します。 これは、少なくとも sizeof(KSDATAFORMAT) である必要がありますが、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シンボリック定数にあります。 特定の形式を持たないデータ ストリームでは、majorFormat の値として KSDATAFORMAT_TYPE_STREAM (ks.h で定義) を使用する必要があります。 このメンバーの詳細については、「 解説」を参照してください。
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 の組み合わせの一覧については、「Stream カテゴリとそのサブトピック」を参照してください。
要件
要件 | 値 |
---|---|
Header | ks.h (Ks.h を含む) |