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 消息的客户端调度函数,例如 添加、启动、停止、Remove。 除非客户端想要接收调度表中所述的 PNP 消息的回调,否则客户端不需要提供调度表。 调度表的任何成员都可以 NULL,以指示客户端不希望接收该特定消息的通知。 有关详细信息,请参阅 KSDEVICE_DISPATCH。
FilterDescriptorsCount
此成员包含将在 FilterDescriptors 成员中提供的此设备的筛选器描述符数。 零是此成员的法律值;客户端可以使用 KsCreateFilterFactory 函数动态创建筛选器工厂,而不是在设备描述符中静态描述它们。
FilterDescriptors
指向描述此设备可创建的筛选器的筛选器描述符数组的指针。 如果 FilterDescriptorsCount 为零,则此成员可能会 NULL。 有关详细信息,请参阅 KSFILTER_DESCRIPTOR。
Version
ULONG 类型的值。 这应该是下表中的一个值,或者如果编写预版本0x100驱动程序,则设置为零。
价值 | 描述 |
---|---|
KSDEVICE_DESCRIPTOR_VERSION | 指示支持 KSDEVICE_DISPATCH的 AVStrMiniDeviceQueryInterface 调度。 |
KSDEVICE_DESCRIPTOR_VERSION_2 | 指示 标志 KSDEVICE_DESCRIPTOR成员的支持。 |
Flags
ULONG 类型的值。 当前仅定义了一个标志。
旗 | 描述 |
---|---|
KSDEVICE_FLAG_ENABLE_REMOTE_WAKEUP | 指示设备支持远程唤醒。 |
Alignment
言论
通常,此结构与客户端 DriverEntry 函数中的 KsInitializeDriver 结合使用来初始化设备。 此结构还用于使用 KsInitializeDevice 和 KsCreateDevice 函数手动初始化或创建设备。
如果将 版本 设置为KSDEVICE_DESCRIPTOR_VERSION_2并在不支持 标志的早期版本的 AVStream 上运行驱动程序,则所有标志都将被视为零。
同样,在更高版本的 AVStream 上使用早期版本描述符不会指定任何标志。
要求
要求 | 价值 |
---|---|
标头 | ks.h (包括 Ks.h) |