struttura KSTOPOLOGY_CONNECTION (ks.h)
La struttura KSTOPOLOGY_CONNECTION descrive una singola connessione percorso dati all'interno di un filtro di streaming del kernel.
PCCONNECTION_DESCRIPTOR è un alias per KSTOPOLOGY_CONNECTION.
Sintassi
typedef struct {
ULONG FromNode;
ULONG FromNodePin;
ULONG ToNode;
ULONG ToNodePin;
} KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION;
Membri
FromNode
Specifica l'ID nodo del nodo nell'estremità upstream della connessione. Se questa fine della connessione è un pin esterno nel filtro, non un pin logico in un nodo, m imposta questo membro sul valore id nodo Null KSFILTER_NODE.
FromNodePin
Specifica l'ID pin per l'estremità upstream della connessione. Se **FromNode **è KSFILTER_NODE, il pin in questa fine della connessione è un pin esterno nel filtro. In caso contrario, il pin in questa estremità è un pin logico in un nodo interno.
ToNode
Specifica l'ID nodo del nodo sulla fine downstream della connessione. Se questa fine della connessione è un pin esterno nel filtro, non un pin logico in un nodo, impostare questo membro sul valore ID nodo Null KSFILTER_NODE.
ToNodePin
Specifica l'ID pin per l'estremità downstream della connessione. Se ToNode è KSFILTER_NODE, il pin in questa fine della connessione è un pin esterno sul filtro. In caso contrario, il pin in questa estremità è un pin logico in un nodo interno.
Osservazioni
KSTOPOLOGY_CONNECTION rappresenta una singola connessione all'interno di un filtro, tra pin esterni, nodi interni o un pin esterno e un nodo interno.
Un driver di streaming restituisce una matrice di strutture di KSTOPOLOGY_CONNECTION in risposta a una richiesta get-property KSPROPERTY_TOPOLOGY_CONNECTIONS.
Quando si rappresenta una connessione tra due pin esterni, sia FromNode che ToNode devono essere impostati su KSFILTER_NODE e FromNodePin e ToNodePin devono essere l'ID del tipo di pin dei rispettivi pin. Per una descrizione degli ID di tipo pin, vedere KSPROPSETID_Pin.
In caso contrario, FromNodePin o ToNodePin rappresentano un pin logico in ingresso o in uscita per la connessione. I numeri di pin logici vengono usati esclusivamente per descrivere una connessione tra nodi; non esistono al di fuori della proprietà KSPROPERTY_TOPOLOGY_CONNECTIONS.
PCCONNECTION_DESCRIPTOR
Il nome della struttura PCCONNECTION_DESCRIPTOR è un alias per KSTOPOLOGY_CONNECTION. PCCONNECTION_DESCRIPTOR per IMiniport::GetDescription() è una descrizione di una connessione di nodo nella topologia del filtro implementato dal miniport. Viene definito come segue nell'intestazione portcls.h:
typedef KSTOPOLOGY_CONNECTION PCCONNECTION_DESCRIPTOR, *PPCCONNECTION_DESCRIPTOR;
Si noti che per le descrizioni dei parametri, il PCFILTER_NODE viene usato con PCCONNECTION_DESCRIPTOR anziché KSFILTER_NODE.
La struttura PCCONNECTION_DESCRIPTOR specifica una singola connessione all'interno di un filtro. La connessione può essere una delle seguenti:
Connessione tra due nodi interni
Una connessione tra un nodo interno e un pin sul filtro
Una connessione tra due puntini sul filtro
L'ultimo tipo di connessione si verifica quando un pin di input su un filtro trasmette i dati direttamente a un pin di output sullo stesso filtro.
Un driver di adattatore usa una matrice di strutture per specificare la topologia interna di un filtro.
Il flusso di dati passa dal FromNode alla fine della connessione ToNode.
Per usare la struttura PCCONNECTION_DESCRIPTOR, il writer del driver assegna i pin "logici" ai nodi all'interno del filtro. Questi "pin" sono punti di connessione nei nodi e sono analoghi ai pin esterni usati dal filtro per connettersi ad altri filtri. Tuttavia, i pin logici nei nodi vengono usati esclusivamente per specificare le connessioni all'interno del filtro.
Un nodo semplice con un singolo input e un singolo output in genere numera rispettivamente i pin di input e output uno e zero. Per convenzione, questa numerazione si basa sulla direzione del flusso IRP anziché sul flusso di dati.
I nodi più complessi potrebbero richiedere ID pin standardizzati per consentire ai client di determinare più facilmente l'assegnazione di funzioni a pin specifici. Ad esempio, il nodo KSNODETYPE_ACOUSTIC_ECHO_CANCEL usa ID standardizzati per i relativi quattro pin.
Quando il pin in un'estremità di una connessione è un pin di input o output sul filtro anziché un pin logico in un nodo, impostare il FromNode o membro ToNode (a seconda della fine della connessione specificata) sul valore di ID nodo Null PCFILTER_NODE.
Evitare di confondere i pin logici, usati esclusivamente per descrivere i punti di connessione nei nodi all'interno di un filtro, con i pin esterni usati dai filtri per connettersi ad altri filtri. I pin logici vengono usati raramente all'esterno della struttura PCCONNECTION_DESCRIPTOR. In questo documento il termine pin fa riferimento a un pin su un filtro KS anziché a un pin logico in un nodo, se non diversamente specificato.
Il metodo IMiniport::GetDescription restituisce una struttura PCFILTER_DESCRIPTOR che contiene un puntatore a una matrice di PCCONNECTION_DESCRIPTOR.
Per un semplice esempio di codice che mostra come viene usata la struttura PCCONNECTION_DESCRIPTOR, vedere Esposizione della topologia filtro.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | ks.h (include Ks.h) |
Vedere anche
BdaPropertyTemplateConnections