KSDEVICE_DESCRIPTOR 구조체(ks.h)

KSDEVICE_DESCRIPTOR 구조는 특정 디바이스의 특성을 설명합니다.

구문

typedef struct _KSDEVICE_DESCRIPTOR {
  const KSDEVICE_DISPATCH   *Dispatch;
  ULONG                     FilterDescriptorsCount;
  const KSFILTER_DESCRIPTOR const * * FilterDescriptors;
  ULONG                     Version;
  ULONG                     Flags;
  PVOID                     Alignment;
} KSDEVICE_DESCRIPTOR, *PKSDEVICE_DESCRIPTOR;

멤버

Dispatch

이 디바이스의 클라이언트 디스패치 테이블에 대한 포인터입니다. 이 디스패치 테이블에는 추가, 시작, 중지, 제거와 같은 PNP 메시지에 대한 클라이언트 디스패치 함수가 포함되어 있습니다. 클라이언트는 디스패치 테이블에 설명된 PNP 메시지에 대한 콜백을 수신하려는 경우가 아니면 디스패치 테이블을 제공할 필요가 없습니다. 디스패치 테이블의 모든 멤버는 클라이언트가 특정 메시지에 대한 알림을 수신하지 않음을 나타내는 NULL 일 수 있습니다. 자세한 내용은 KSDEVICE_DISPATCH.

FilterDescriptorsCount

이 멤버에는 FilterDescriptors 멤버에 제공될 이 디바이스의 필터 설명자 수가 포함됩니다. 0은 이 멤버에 대한 법적 가치입니다. 클라이언트는 디바이스 설명자에서 정적으로 설명하는 대신 KsCreateFilterFactory 함수를 사용하여 필터 팩터리를 동적으로 만들 수 있습니다.

FilterDescriptors

이 디바이스에서 만들 수 있는 필터를 설명하는 필터 설명자 배열에 대한 포인터입니다. FilterDescriptorsCount가 0인 경우 이 멤버는 NULL일 수 있습니다. 자세한 내용은 KSFILTER_DESCRIPTOR 참조하세요.

Version

ULONG 형식의 값입니다. 이 값은 다음 표의 값 중 하나일 뿐이거나, 사전 버전 0x100 드라이버를 작성하는 경우 0으로 설정해야 합니다.

Description
KSDEVICE_DESCRIPTOR_VERSION KSDEVICE_DISPATCH AVStrMiniDeviceQueryInterface 디스패치의 지원을 나타냅니다.
KSDEVICE_DESCRIPTOR_VERSION_2 KSDEVICE_DESCRIPTOR Flags 멤버의 지원을 나타냅니다.

Flags

ULONG 형식의 값입니다. 현재 정의된 플래그는 하나뿐입니다.

플래그 설명
KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP 디바이스가 원격 절전 모드 해제를 지원한다는 것을 나타냅니다.

Alignment

설명

대부분의 경우 이 구조는 클라이언트의 DriverEntry 함수에서 KsInitializeDriver와 함께 사용하여 디바이스를 초기화합니다. 이 구조는 KsInitializeDeviceKsCreateDevice 함수를 사용하여 디바이스를 수동으로 초기화하거나 만드는 데도 사용됩니다.

버전을 KSDEVICE_DESCRIPTOR_VERSION_2 설정하고 플래그를 지원하지 않는 AVStream의 초기 버전에서 드라이버를 실행하는 경우 모든 플래그는 0으로 간주됩니다.

마찬가지로, AVStream의 이후 버전에서 이전 버전 설명자를 사용하면 플래그를 지정하지 않습니다.

요구 사항

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

추가 정보

KSDEVICE_DISPATCH

KSFILTER_DESCRIPTOR

KsCreateDevice

KsInitializeDevice

KsInitializeDriver