Estrutura KSDATAFORMAT (ks.h)

A estrutura KSDATAFORMAT é uma estrutura de comprimento variável que descreve um formato de dados.

Sintaxe

typedef struct {
  ULONG FormatSize;
  ULONG Flags;
  ULONG SampleSize;
  ULONG Reserved;
  GUID  MajorFormat;
  GUID  SubFormat;
  GUID  Specifier;
} KSDATAFORMAT, *PKSDATAFORMAT, KSDATARANGE, *PKSDATARANGE;

Membros

FormatSize

Especifica o tamanho, em bytes, da estrutura KSDATAFORMAT. Isso deve ser pelo menos sizeof(KSDATAFORMAT), mas pode ser maior para configurações específicas de MajorFormat, SubFormat e Specifier. Confira as descrições desses membros para obter mais informações.

Flags

Defina Sinalizadores como KSDATAFORMAT_ATTRIBUTES (0x2) para indicar que o KSDATAFORMAT é seguido na memória por um KSMULTIPLE_ITEM de estruturas KSATTRIBUTE .

SampleSize

Especifica o tamanho da amostra dos dados, para tamanhos de exemplo fixos ou zero, se o formato tiver um tamanho de amostra variável.

Reserved

Reservado para uso do sistema. Os drivers devem definir esse membro como zero.

MajorFormat

Especifica o tipo de formato geral. Os formatos de dados com suporte no momento podem ser encontrados no KSDATAFORMAT_TYPE_XXX constantes simbólicas no arquivo de cabeçalho ksmedia.h incluído no WDK (Kit de Driver do Windows). Um fluxo de dados que não tem um formato específico deve usar KSDATAFORMAT_TYPE_STREAM (definido em ks.h) como o valor de seu MajorFormat. Para obter mais informações sobre esse membro, consulte Comentários.

SubFormat

Especifica o subformatação de um tipo de formato geral. As subformatações de dados com suporte no momento podem ser encontradas no KSDATAFORMAT_SUBTYPE_XXX constantes simbólicas no arquivo de cabeçalho ksmedia.h incluído no WDK. Os formatos principais que não dão suporte a subformatações devem usar o valor KSDATAFORMAT_SUBTYPE_NONE para esse membro. Para obter mais informações sobre esse membro, consulte Comentários.

Specifier

Especifica informações adicionais de tipo de formato de dados para uma configuração específica de MajorFormat e SubFormat. A significância desse campo é determinada pelo formato principal (e subformatação, se o formato principal der suporte a subformatações). Por exemplo, Specifier pode representar uma codificação específica de um subformulário ou pode ser usado para especificar que tipo de estrutura de dados segue KSDATAFORMAT na memória.

Os seguintes especificadores ( definidos em ks.h) são de uso geral:

KSDATAFORMAT_SPECIFIER_NONE

Significa nenhum especificador. Usado para formatos que não dão suporte a especificadores.

KSDATAFORMAT_SPECIFIER_FILENAME

Indica que uma cadeia de caracteres Unicode terminada em nulo segue imediatamente a estrutura KSDATAFORMAT na memória.

KSDATAFORMAT_SPECIFIER_FILEHANDLE

Indica que um identificador de arquivo segue imediatamente KSDATAFORMAT na memória.

Comentários

No mínimo, um formato de dados é especificado pelos membros MajorFormat, SubFormat e Specifier . Uma família de formatos de dados semelhantes pode compartilhar os mesmos valores para MajorFormat, SubFormat e Specifier. Nesse caso, o formato de dados específico é diferenciado por dados adicionais que seguem o membro Especificador na memória.

Para obter uma lista de combinações de MajorFormat, SubFormat e Specifier, consulte Categorias Stream e seus subtópicos.

Requisitos

Requisito Valor
Cabeçalho ks.h (inclua Ks.h)

Confira também

Categorias de Stream