KSTOPOLOGY_CONNECTION结构 (ks.h)
KSTOPOLOGY_CONNECTION结构描述内核流式处理筛选器内的单个数据路径连接。
PCCONNECTION_DESCRIPTOR是KSTOPOLOGY_CONNECTION的别名。
语法
typedef struct {
ULONG FromNode;
ULONG FromNodePin;
ULONG ToNode;
ULONG ToNodePin;
} KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION;
成员
FromNode
指定连接上游端节点的节点 ID。 如果连接的此结尾是筛选器上的外部引脚,而不是节点上的逻辑引脚,m 将此成员设置为 null 节点 ID 值,KSFILTER_NODE。
FromNodePin
指定连接的上游端的引脚 ID。 如果“FromNode”是KSFILTER_NODE,则连接末尾的引脚是筛选器上的外部引脚。 否则,此端的引脚是内部节点上的逻辑引脚。
ToNode
指定连接下游端节点的节点 ID。 如果连接的此末尾是筛选器上的外部引脚,而不是节点上的逻辑引脚,请将此成员设置为 null 节点 ID 值,KSFILTER_NODE。
ToNodePin
指定连接的下游端的引脚 ID。 如果 ToNode KSFILTER_NODE,则连接末尾的引脚是筛选器上的外部引脚。 否则,此端的引脚是内部节点上的逻辑引脚。
言论
KSTOPOLOGY_CONNECTION表示筛选器内的单个连接,在外部引脚、内部节点或外部引脚和内部节点之间。
流式处理驱动程序返回KSTOPOLOGY_CONNECTION结构的数组,以响应 KSPROPERTY_TOPOLOGY_CONNECTIONS get-property 请求。
表示两个外部引脚之间的连接时,FromNode 和 ToNode 应设置为KSFILTER_NODE,FromNodePin,ToNodePin 应为相应引脚的引脚类型 ID。 有关引脚类型 ID 的说明,请参阅 KSPROPSETID_Pin。
否则,FromNodePin 或 ToNodePin 表示连接的逻辑传入或传出引脚。 逻辑引脚数仅用于描述节点之间的连接;它们不存在于KSPROPERTY_TOPOLOGY_CONNECTIONS属性之外。
PCCONNECTION_DESCRIPTOR
PCCONNECTION_DESCRIPTOR结构名称是KSTOPOLOGY_CONNECTION的别名。 适用于 IMiniport::GetDescription() 的PCCONNECTION_DESCRIPTOR是微型端口实现的筛选器拓扑中的节点连接的说明。 它在 portcls.h 标头中定义如下:
typedef KSTOPOLOGY_CONNECTION PCCONNECTION_DESCRIPTOR, *PPCCONNECTION_DESCRIPTOR;
请注意,对于参数说明,PCFILTER_NODE 用于PCCONNECTION_DESCRIPTOR而不是KSFILTER_NODE。
PCCONNECTION_DESCRIPTOR 结构指定筛选器内的单个连接。 连接可以是以下项之一:
两个内部节点之间的连接
内部节点与筛选器上的引脚之间的连接
筛选器上的两个引脚之间的连接
当筛选器上的输入引脚将数据直接流式传输到同一筛选器上的输出引脚时,会发生最后一种类型的连接。
适配器驱动程序使用结构数组来指定筛选器的内部拓扑。
数据流从 FromNode 端流向连接 ToNode 端。
若要使用 PCCONNECTION_DESCRIPTOR 结构,驱动程序编写器会将“逻辑”引脚分配给筛选器内的节点。 这些“引脚”是节点上的连接点,类似于筛选器用于连接到其他筛选器的外部引脚。 但是,节点上的逻辑引脚仅用于指定筛选器中的连接。
具有单个输入和单个输出的简单节点通常分别为其输入和输出引脚编号 1 和 0。 根据约定,此编号基于 IRP 流的方向,而不是数据流。
更复杂的节点可能需要标准化的引脚 ID,以便客户端能够更轻松地确定将函数分配给特定引脚。 例如,KSNODETYPE_ACOUSTIC_ECHO_CANCEL 节点对其四个引脚使用标准化 ID。
当连接一端的引脚是筛选器上的输入或输出引脚,而不是节点上的逻辑引脚时,请将 FromNode 或 ToNode 成员(具体取决于指定的连接末尾)设置为 null 节点 ID 值,PCFILTER_NODE。
避免混淆逻辑引脚,这些引脚仅用于描述筛选器内节点上的连接点,以及用于连接到其他筛选器的外部引脚。 逻辑引脚很少在 PCCONNECTION_DESCRIPTOR 结构之外使用。 在本文档中,术语 固定 指 KS 筛选器上的引脚,而不是节点上的逻辑引脚,除非另有说明。
IMiniport::GetDescription 方法输出一个 PCFILTER_DESCRIPTOR 结构,其中包含指向 PCCONNECTION_DESCRIPTOR 数组的指针。
有关演示如何使用 PCCONNECTION_DESCRIPTOR 结构的简单代码示例,请参阅 公开筛选器拓扑。
要求
要求 | 价值 |
---|---|
标头 | ks.h (包括 Ks.h) |
另请参阅
BdaPropertyTemplateConnections