The PCNODE_DESCRIPTOR structure describes a node in the filter that a topology miniport driver implements.
typedef struct
{
ULONG Flags;
const PCAUTOMATION_TABLE *AutomationTable;
const GUID *Type;
const GUID *Name;
} PCNODE_DESCRIPTOR, *PPCNODE_DESCRIPTOR
If a topology filter contains only a single node of the type specified by the Type member, then the Name member can be specified as NULL because the Type value is sufficient to uniquely identify the node within the filter. If the filter contains two or more nodes of the same type, the Name members for those nodes must be nonNULL.
For example, if a filter contains a single SUM node, the Type member for that node points to GUID value KSNODETYPE_SUM, and the Name member is set to NULL. When queried for the name of that node, the KSPROPERTY_TOPOLOGY_NAME property, after determining that the node's Name value is NULL, retrieves the name string from the registry entry for the KSNODETYPE_SUM GUID. However, the same filter might contain several volume nodes, in which case the Type values for these nodes all point to the same GUID value, KSNODETYPE_VOLUME, and the Name value must uniquely identify each of the volume nodes. The Name value for the wave-input volume control node, for example, should point to GUID value KSAUDFNAME_WAVE_IN_VOLUME (defined in ksmedia.h). The registry entry for this GUID contains the name string that the KSPROPERTY_TOPOLOGY_NAME property retrieves for the node.
The PCFILTER_DESCRIPTOR structure contains a pointer to an array of PCNODE_DESCRIPTOR structures.
For a simple code example that shows how the PCNODE_DESCRIPTOR structure is used, see Exposing Miniport Topology.
KSPROPERTY_TOPOLOGY_NAME, PCAUTOMATION_TABLE, PCFILTER_DESCRIPTOR