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 成员中提供的此设备的筛选器描述符数。 零是此成员的合法值;客户端可以使用 KsCreateFilterFactory 函数动态创建筛选器工厂,而不是在设备描述符中静态描述它们。

FilterDescriptors

指向筛选器描述符数组的指针,这些描述符描述此设备可以创建的筛选器。 如果 FilterDescriptorsCount 为零,则此成员可能为 NULL。 有关详细信息,请参阅 KSFILTER_DESCRIPTOR

Version

ULONG 类型的值。 这应该是下表中的一个且唯一的值,如果编写预版本0x100驱动程序,则此值应设置为零。

说明
KSDEVICE_DESCRIPTOR_VERSION 指示支持 KSDEVICE_DISPATCHAVStrMiniDeviceQueryInterface 调度。
KSDEVICE_DESCRIPTOR_VERSION_2 指示支持 KSDEVICE_DESCRIPTOR 的 Flags 成员。

Flags

ULONG 类型的值。 当前只定义了一个标志。

标志 描述
KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP 指示设备支持远程唤醒。

Alignment

注解

大多数情况下,此结构与客户端 DriverEntry 函数中的 KsInitializeDriver 结合使用来初始化设备。 此结构还用于使用 KsInitializeDeviceKsCreateDevice 函数手动初始化或创建设备。

如果将 Version 设置为 KSDEVICE_DESCRIPTOR_VERSION_2并在不支持 Flags 的早期版本的 AVStream 上运行驱动程序,则所有标志都将被视为零。

同样,在更高版本的 AVStream 上使用早期版本描述符会导致不指定任何标志。

要求

要求
Header ks.h (包括 Ks.h)

另请参阅

KSDEVICE_DISPATCH

KSFILTER_DESCRIPTOR

KsCreateDevice

KsInitializeDevice

KsInitializeDriver