Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
A differenza dei filtri e dei pin, i nodi non dispongono di un handle di file associato da cui le applicazioni nel circuito 3 possono accedervi. Poiché i nodi sono componenti interni all'interno di un filtro, esistono da qualche parte tra i pin di input e di output del filtro. Il provider di rete deve determinare quale pin di filtro usare, quindi usare il pin per accedere a un nodo. Questo pin di filtro è denominato pin di controllo per tale nodo. Per determinare il pin di controllo per ogni nodo nell'elenco di connessioni modello BDA di un filtro, il provider di rete esegue una query sulla proprietà KSPROPERTY_BDA_CONTROLLING_PIN_ID del set di proprietà KSPROPSETID_BdaTopology . Il minidriver BDA chiama a sua volta la funzione di supporto BdaPropertyGetControllingPinId per ogni nodo. In questa chiamata, il minidriver passa un puntatore a una struttura KSP_BDA_NODE_PIN. Questa struttura identifica la richiesta di proprietà per recuperare il pin di controllo per un tipo di nodo specifico e una coppia di pin di input e output del filtro. La libreria di supporto BDA restituisce l'identificatore del pin di controllo per il tipo di nodo.
Un minidriver BDA non intercetta in genere la proprietà KSPROPERTY_BDA_CONTROLLING_PIN_ID. Il minidriver invia automaticamente la funzione di supporto BdaPropertyGetControllingPinId dal set di proprietà KSPROPSETID_BdaTopology. Per altre informazioni, vedere Determinazione della topologia del dispositivo BDA .
La libreria di supporto è in grado di eseguire tutte le operazioni di determinazione dell'identificatore del pin di controllo perché il minidriver BDA ha fornito alla libreria di supporto un puntatore alla struttura BDA_FILTER_TEMPLATE quando il minidriver BDA ha iniziato a funzionare. Per altre informazioni, vedere Avvio di un minidriver BDA. Un minidriver BDA informa la libreria di supporto BDA su come determinare i pin di controllo tramite le informazioni contenute in BDA_FILTER_TEMPLATE. Queste informazioni includono:
Matrice di connessioni. Questa matrice è una matrice di KSTOPOLOGY_CONNECTION che fornisce una rappresentazione di tutte le possibili connessioni tra i tipi di nodo e pin che possono essere eseguiti all'interno di un filtro o tra un filtro e filtri adiacenti. Per altre informazioni sulla matrice di KSTOPOLOGY_CONNECTION, vedere Mapping della topologia di connessione .
Matrice di valori comuni. Un giunto è un punto nella topologia in cui un input viene suddiviso in uno o più percorsi verso output diversi, oppure uno o più input si uniscono in un singolo percorso di output. Il valore assegnato a un'associazione corrisponde all'indice di un elemento nella matrice KSTOPOLOGY_CONNECTION. La maggior parte delle topologie avrà un solo giunto.
Matrice di strutture BDA_PIN_PAIRING . Queste strutture identificano i tipi di pin di input e di output, il numero massimo di istanze di tipo input che possono essere create nel filtro e il numero massimo di istanze di tipo di output che possono essere create nel filtro. Queste strutture contengono anche un puntatore alla matrice di valori comuni tra i pin di input e di output. Per ulteriori informazioni sull'array BDA_PIN_PAIRING, vedere Avvio di un minidriver BDA.
La figura seguente mostra come la libreria di supporto determina il pin di filtro che controlla un nodo specifico: