Структура 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_ATTRIBUTES (0x2), чтобы указать, что за KSDATAFORMAT в памяти следует KSMULTIPLE_ITEM структур KSATTRIBUTE .

SampleSize

Указывает размер выборки данных для фиксированных размеров выборки или ноль, если формат имеет переменный размер выборки.

Reserved

Зарезервировано для системного использования. Драйверы должны задать для этого элемента нулевое значение.

MajorFormat

Указывает общий тип формата. Поддерживаемые в настоящее время форматы данных можно найти в KSDATAFORMAT_TYPE_XXX символьных констант в файле заголовка ksmedia.h , который входит в комплект драйверов Windows (WDK). Поток данных без определенного формата должен использовать KSDATAFORMAT_TYPE_STREAM (определенный в ks.h) в качестве значения параметра MajorFormat. Дополнительные сведения об этом элементе см. в разделе Примечания.

SubFormat

Задает подчиненный формат общего типа формата. Поддерживаемые в настоящее время подформаты данных можно найти в KSDATAFORMAT_SUBTYPE_XXX символьных констант в файле заголовка ksmedia.h , включенном в WDK. Основные форматы, которые не поддерживают подчиненные форматы, должны использовать значение KSDATAFORMAT_SUBTYPE_NONE для этого элемента. Дополнительные сведения об этом элементе см. в разделе Примечания.

Specifier

Указывает дополнительные сведения о типе формата данных для определенного параметра MajorFormat и SubFormat. Значимость этого поля определяется основным форматом (и подчиненным форматом, если основной формат поддерживает подчиненные форматы). Например, спецификатор может представлять определенную кодировку подчиненного формата или может использоваться для указания типа структуры данных, следующей за KSDATAFORMAT в памяти.

Обычно используются следующие описатели (определенные в ks.h):

KSDATAFORMAT_SPECIFIER_NONE

Расшифровывается как no specifier. Используется для форматов, которые не поддерживают описатели.

KSDATAFORMAT_SPECIFIER_FILENAME

Указывает, что строка Юникода, завершающаяся значением NULL, сразу же следует за структурой KSDATAFORMAT в памяти.

KSDATAFORMAT_SPECIFIER_FILEHANDLE

Указывает, что дескриптор файла сразу же следует за KSDATAFORMAT в памяти.

Комментарии

Как минимум, формат данных задается элементами MajorFormat, SubFormat и Specifier . Семейство похожих форматов данных может использовать одинаковые значения для MajorFormat, SubFormat и Specifier. В этом случае конкретный формат данных отличается дополнительными данными, которые следует за элементом Спецификатора в памяти.

Список сочетаний MajorFormat, SubFormat и Specifier см. в разделе категории Stream и его подтемы.

Требования

Требование Значение
Заголовок ks.h (включая Ks.h)

См. также раздел

Категории Stream