Freigeben über


Bestimmen des Steuernden Pins eines Knotens

Im Gegensatz zu Filtern und Pins verfügen Knoten nicht über ein zugeordnetes Dateihandle, über das Anwendungen in Ring 3 darauf zugreifen können. Da Knoten interne Komponenten innerhalb eines Filters sind, befinden sie sich irgendwo zwischen den Eingabe- und Ausgabepins des Filters. Der Netzwerkanbieter muss bestimmen, welcher Filterpin verwendet werden soll, und dann den Pin verwenden, um auf einen Knoten zuzugreifen. Dieser Filterpin wird als steuernder Pin für diesen Knoten bezeichnet. Um den steuernden Pin für jeden Knoten in der Verbindungsliste der BDA-Vorlage eines Filters zu bestimmen, fragt der Netzwerkanbieter die KSPROPERTY_BDA_CONTROLLING_PIN_ID-Eigenschaft des KSPROPSETID_BdaTopology-Eigenschaftssatzes ab. Der BDA-Minidriver wiederum ruft die BdaPropertyGetControllingPinId-Unterstützungsfunktion für jeden Knoten auf. In diesem Aufruf übergibt der Minitreiber einen Zeiger auf eine KSP_BDA_NODE_PIN-Struktur . Diese Struktur identifiziert die Eigenschaftsanforderung zum Abrufen des steuernden Pins für einen bestimmten Knotentyp und ein Paar der Eingabe- und Ausgabepins des Filters. Die BDA-Unterstützungsbibliothek gibt den Bezeichner des steuernden Pins für den Knotentyp zurück.

Ein BDA-Minitreiber fängt die eigenschaft KSPROPERTY_BDA_CONTROLLING_PIN_ID in der Regel nicht ab. Der Minidriver sendet automatisch die BdaPropertyGetControllingPinId-Unterstützungsfunktion aus dem KSPROPSETID_BdaTopology Eigenschaftensatz. Weitere Informationen finden Sie unter Ermitteln der BDA-Gerätetopologie .

Die Supportbibliothek ist in der Lage, den Bezeichner des steuerfähigen Pins zu ermitteln, da der BDA-Minitreiber der Supportbibliothek einen Zeiger auf die BDA_FILTER_TEMPLATE Struktur zur Verfügung stellte, als der BDA-Minitreiber den Betrieb aufgenommen hat. Weitere Informationen finden Sie unter Starten eines BDA Minidrivers . Ein BDA-Minidriver informiert die BDA-Supportbibliothek darüber, wie die Steuerung von Pins anhand der in BDA_FILTER_TEMPLATE enthaltenen Informationen bestimmt werden kann. Folgende Informationen werden erfasst:

  • Ein Array von Verbindungen. Dieses Array ist ein KSTOPOLOGY_CONNECTION Array, das eine Darstellung aller möglichen Verbindungen zwischen Knoten- und Pintypen bereitstellt, die innerhalb eines Filters oder zwischen einem Filter und angrenzenden Filtern hergestellt werden können. Weitere Informationen zum KSTOPOLOGY_CONNECTION Arrays finden Sie unter Zuordnung der Verbindungstopologie .

  • Ein Array von gemeinsamen Werten. Ein Joint ist ein Punkt in der Topologie, an dem eine Eingabe in einen oder mehrere Pfade zu unterschiedlichen Ausgaben oder eine oder mehrere Eingaben in einen einzelnen Ausgabepfad aufgeteilt wird. Der einem Joint zugewiesene Wert entspricht dem Index eines Elements im KSTOPOLOGY_CONNECTION Arrays. Die meisten Topologien verfügen nur über ein Gelenk.

  • Ein Array von BDA_PIN_PAIRING Strukturen. Diese Strukturen identifizieren Eingabe- und Ausgabe-Pintypen, die maximale Anzahl von Eingabetypinstanzen, die für den Filter erstellt werden können, und die maximale Anzahl von Ausgabeinstanzen, die für den Filter erstellt werden können. Diese Strukturen enthalten auch einen Zeiger auf das Array von Gemeinsamenwerten zwischen den Eingabe- und Ausgabepins. Weitere Informationen zum BDA_PIN_PAIRING Array finden Sie unter Starten eines BDA-Minidrivers .

Die folgende Abbildung zeigt, wie die Supportbibliothek den Filterpin bestimmt, der einen bestimmten Knoten steuert:

Diagramm, das veranschaulicht, wie die Supportbibliothek den Filterpin bestimmt, der einen bestimmten Knoten steuert.