次の方法で共有


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 の直後にあることを示します。

備考

少なくとも、データ形式は、MajorFormatSubFormat、および Specifier メンバーによって指定されます。 同様のデータ形式のファミリは、MajorFormatSubFormat、および Specifierで同じ値を共有できます。 その場合、特定のデータ形式は、メモリ内の 指定子 メンバーに続く追加のデータによって区別されます。

MajorFormat SubFormat、および Specifier の組み合わせの一覧については、「ストリーム カテゴリの とそのサブトピック」を参照してください。

必要条件

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

関連項目

ストリーム カテゴリの