KSTOPOLOGY_CONNECTION Struktur (ks.h)
Die KSTOPOLOGY_CONNECTION Struktur beschreibt eine einzelne Datenpfadverbindung innerhalb eines Kernelstreamingfilters.
PCCONNECTION_DESCRIPTOR ist ein Alias für KSTOPOLOGY_CONNECTION.
Syntax
typedef struct {
ULONG FromNode;
ULONG FromNodePin;
ULONG ToNode;
ULONG ToNodePin;
} KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION;
Angehörige
FromNode
Gibt die Knoten-ID des Knotens am upstream-Ende der Verbindung an. Wenn es sich bei diesem Verbindungsende um einen externen Pin für den Filter handelt, nicht um einen logischen Pin auf einem Knoten,m legen Sie dieses Element auf den Nullknoten-ID-Wert fest, KSFILTER_NODE.
FromNodePin
Gibt die Pin-ID für das vorgelagerte Ende der Verbindung an. Wenn **FromNode **KSFILTER_NODE ist, ist der Pin an diesem Ende der Verbindung ein externer Pin auf dem Filter. Wenn dies nicht der Fall ist, ist der Pin auf diesem Ende ein logischer Pin auf einem internen Knoten.
ToNode
Gibt die Knoten-ID des Knotens am downstream ende der Verbindung an. Wenn es sich bei diesem Verbindungsende um einen externen Pin für den Filter handelt, nicht um einen logischen Pin auf einem Knoten, legen Sie dieses Element auf den Nullknoten-ID-Wert KSFILTER_NODE fest.
ToNodePin
Gibt die Pin-ID für das nachgeschaltete Ende der Verbindung an. Wenn ToNode- KSFILTER_NODE ist, ist der Pin an diesem Ende der Verbindung ein externer Pin auf dem Filter. Wenn dies nicht der Fall ist, ist der Pin auf diesem Ende ein logischer Pin auf einem internen Knoten.
Bemerkungen
KSTOPOLOGY_CONNECTION stellt eine einzelne Verbindung innerhalb eines Filters zwischen externen Pins, internen Knoten oder einem externen Pin und einem internen Knoten dar.
Ein Streamingtreiber gibt ein Array von KSTOPOLOGY_CONNECTION Strukturen als Reaktion auf eine KSPROPERTY_TOPOLOGY_CONNECTIONS get-property-Anforderung zurück.
Bei der Darstellung einer Verbindung zwischen zwei externen Pins sollten sowohl FromNode als auch ToNode- auf KSFILTER_NODE festgelegt werden, und die FromNodePin- und ToNodePin- sollte die Pintyp-ID der jeweiligen Pins sein. Eine Beschreibung der Pintyp-IDs finden Sie unter KSPROPSETID_Pin.
Andernfalls stellen FromNodePin oder ToNodePin einen logischen eingehenden oder ausgehenden Pin für die Verbindung dar. Die logischen Pinnummern werden ausschließlich verwendet, um eine Verbindung zwischen Knoten zu beschreiben; sie haben keine Existenz außerhalb der eigenschaft KSPROPERTY_TOPOLOGY_CONNECTIONS.
PCCONNECTION_DESCRIPTOR
Der PCCONNECTION_DESCRIPTOR Strukturname ist ein Alias für KSTOPOLOGY_CONNECTION. PCCONNECTION_DESCRIPTOR für IMiniport::GetDescription() ist eine Beschreibung einer Knotenverbindung in der Topologie des vom Miniport implementierten Filters. Sie wird wie folgt im portcls.h-Header definiert:
typedef KSTOPOLOGY_CONNECTION PCCONNECTION_DESCRIPTOR, *PPCCONNECTION_DESCRIPTOR;
Beachten Sie, dass für die Parameterbeschreibungen der PCFILTER_NODE mit PCCONNECTION_DESCRIPTOR anstelle von KSFILTER_NODE verwendet wird.
Die PCCONNECTION_DESCRIPTOR-Struktur gibt eine einzelne Verbindung innerhalb eines Filters an. Die Verbindung kann eine der folgenden Sein:
Eine Verbindung zwischen zwei internen Knoten
Eine Verbindung zwischen einem internen Knoten und einem Pin auf dem Filter
Eine Verbindung zwischen zwei Pins auf dem Filter
Der letzte Verbindungstyp tritt auf, wenn eine Eingabenadel in einem Filter Daten direkt an einen Ausgabe-Pin für denselben Filter streamt.
Ein Adaptertreiber verwendet ein Array von Strukturen, um die interne Topologie eines Filters anzugeben.
Der Datenstrom fließt vom FromNode endes zum ToNode Ende der Verbindung.
Um die PCCONNECTION_DESCRIPTOR Struktur zu verwenden, weist der Treiberschreiber den Knoten innerhalb des Filters "logische" Pins zu. Diese "Pins" sind Verbindungspunkte auf den Knoten und entsprechen den externen Pins, die der Filter verwendet, um eine Verbindung mit anderen Filtern herzustellen. Logische Pins auf Knoten werden jedoch ausschließlich verwendet, um die Verbindungen innerhalb des Filters anzugeben.
Ein einfacher Knoten mit einer einzelnen Eingabe und einer einzelnen Ausgabe nummeriert in der Regel die Eingabe- und Ausgabeheften eins bzw. null. In der Konvention basiert diese Nummerierung auf der Richtung des IRP-Flusses und nicht auf dem Datenfluss.
Komplexere Knoten erfordern möglicherweise standardisierte Pin-IDs, damit Clients die Zuweisung von Funktionen zu bestimmten Pins einfacher bestimmen können. Der KSNODETYPE_ACOUSTIC_ECHO_CANCEL Knoten verwendet beispielsweise standardisierte IDs für die vier Pins.
Wenn es sich bei dem Pin an einem Ende einer Verbindung um einen Eingabe- oder Ausgabepinn auf dem Filter und nicht um einen logischen Pin auf einem Knoten handelt, legen Sie die FromNode- oder ToNode Member (je nachdem, welches Ende der angegebenen Verbindung) auf den Null-Knoten-ID-Wert PCFILTER_NODE.
Vermeiden Sie verwirrende logische Pins, die ausschließlich zum Beschreiben von Verbindungspunkten auf Knoten innerhalb eines Filters verwendet werden, mit den externen Pins, die zum Herstellen einer Verbindung mit anderen Filtern verwendet werden. Logische Pins werden selten außerhalb der PCCONNECTION_DESCRIPTOR Struktur verwendet. In diesem Dokument bezieht sich der Begriff Pin auf einen Pin auf einen KS-Filter und nicht auf einen logischen Pin auf einem Knoten, sofern nicht anders angegeben.
Die IMiniport::GetDescription--Methode gibt eine PCFILTER_DESCRIPTOR Struktur aus, die einen Zeiger auf ein PCCONNECTION_DESCRIPTOR Array enthält.
Ein einfaches Codebeispiel, das zeigt, wie die PCCONNECTION_DESCRIPTOR Struktur verwendet wird, finden Sie unter Exposing FilterTopology.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ks.h (enthalten Ks.h) |
Siehe auch
BdaPropertyTemplateConnections