支持属性集

微型驱动程序作为一个整体和单个流都可以接收属性请求。 微型驱动程序在驱动程序的 DevicePropertiesArray 中提供它支持 HW_STREAM_HEADER。 每个流在流的结构的 StreamPropertiesArray 中提供它 HW_STREAM_INFORMATION属性集

微型驱动程序定义它通过 KSPROPERTY_SET 数据结构处理的属性集,该属性集又指向 KSPROPERTY_ITEM 结构的数组,一个数组用于属性集的每个属性。 如果 KSPROPERTY_ITEM GetSupported 成员 为 TRUE,则微型驱动程序支持获取属性数据。 如果 属性的 SetSupported 成员KSPROPERTY_ITEM TRUE,则微型驱动程序支持设置属性数据。

大多数属性支持请求由类驱动程序自动处理,使用微型驱动程序在属性的KSPROPERTY_ITEM结构中提供的信息。 例如,如果类驱动程序收到KSPROPERTY_TYPE_BASICSUPPORT请求,则它会在类驱动程序的 Values 成员中查找数据类型和KSPROPERTY_ITEM。 有关详细信息 KSPROPERTY_ITEM 请参阅 KSPROPERTY_ITEM。 如果微型驱动程序需要对支持请求执行自定义处理, (很少) ,它可能会将 KSPROPERTY_ITEM SupportHandler 成员设置为 TRUE。 然后,类驱动程序处理支持请求,就像它是属性 get 请求一样。 微型驱动程序可以确定属性标识符的 Flags 成员的请求的实际类型。

类驱动程序通过向微型驱动程序的 StrMiniReceiveDevicePacket SRB_GET_DEVICE_PROPERTY或 SRB_SET_DEVICE_PROPERTY 请求获取或设置微型驱动程序属性。 类驱动程序通过向流的 StrMiniReceiveStreamControlPacket SRB_GET_STREAM_PROPERTY或 SRB_SET_STREAM_PROPERTY请求获取或设置流属性。

类驱动程序代表微型驱动程序处理多个属性,偶尔通过微型驱动程序的回调之一从微型驱动程序获得帮助。 微型驱动程序不会在其属性集数组中定义这些属性。 有关类驱动程序如何处理属性集和KSPROPSETID_Pin KSPROPSETID_Topology的说明,请参阅支持多个流