Структура 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) |