다음을 통해 공유


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, SubFormatSpecifier의 특정 설정에 대해 더 클 수 있습니다. 자세한 내용은 이러한 멤버에 대한 설명을 참조하세요.

Flags

플래그를 KSDATAFORMAT_ATTRIBUTES(0x2)로 설정하여 KSDATAFORMAT 뒤에 KSATTRIBUTE 구조체의 KSMULTIPLE_ITEM 따라 메모리에서 수행됨을 나타냅니다.

SampleSize

형식에 가변 샘플 크기가 있는 경우 고정 샘플 크기의 경우 데이터의 샘플 크기를 지정하거나 0을 지정합니다.

Reserved

시스템에서 사용하도록 예약되었습니다. 드라이버는 이 멤버를 0으로 설정해야 합니다.

MajorFormat

일반 형식 형식을 지정합니다. 현재 지원되는 데이터 형식은 WDK(Windows 드라이버 키트)에 포함된 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로 끝나는 유니코드 문자열이 메모리의 KSDATAFORMAT 구조 바로 뒤에 있음을 나타냅니다.

KSDATAFORMAT_SPECIFIER_FILEHANDLE

파일 핸들이 메모리의 KSDATAFORMAT 바로 뒤에 있음을 나타냅니다.

설명

최소한 데이터 형식은 MajorFormat, SubFormat지정자 멤버에 의해 지정됩니다. 유사한 데이터 형식의 제품군은 MajorFormat, SubFormat지정자에 대해 동일한 값을 공유할 수 있습니다. 이 경우 특정 데이터 형식은 메모리의 지정자 멤버 뒤에 있는 추가 데이터로 구분됩니다.

MajorFormat, SubFormat지정자 조합 목록은 Stream 범주 및 해당 하위 항목을 참조하세요.

요구 사항

요구 사항
헤더 ks.h(Ks.h 포함)

추가 정보

Stream 범주