Compartir a través de


Determinar el pin de control de un nodo

A diferencia de los filtros y patillas, los nodos no tienen un identificador de archivo asociado por el que las aplicaciones del anillo 3 pueden acceder a ellos. Dado que los nodos son componentes internos dentro de un filtro, existen en algún lugar entre los pins de entrada y salida del filtro. El proveedor de red debe determinar qué pin de filtro se va a usar y, a continuación, usar el pin para acceder a un nodo. Este pin de filtro se denomina patilla de control para ese nodo. Para determinar el pin de control de cada nodo de la lista de conexiones de plantilla de BDA de un filtro, el proveedor de red consulta la propiedad KSPROPERTY_BDA_CONTROLLING_PIN_ID del conjunto de propiedades de KSPROPSETID_BdaTopology . A su vez, el minidriver BDA llama a la función de compatibilidad BdaPropertyGetControllingPinId para cada nodo. En esta llamada, el minidriver pasa un puntero a una estructura de KSP_BDA_NODE_PIN . Esta estructura identifica la solicitud de propiedad para recuperar el pin de control de un tipo de nodo específico y un par de los pins de entrada y salida del filtro. La biblioteca de compatibilidad de BDA devuelve el identificador del pin de control para el tipo de nodo.

Normalmente, un minidriver BDA no intercepta la propiedad KSPROPERTY_BDA_CONTROLLING_PIN_ID. El minidriver envía automáticamente la función de compatibilidad BdaPropertyGetControllingPinId desde el conjunto de propiedades KSPROPSETID_BdaTopology. Consulte Determinar la topología de dispositivos BDA para obtener más información.

La biblioteca de soporte técnico puede realizar todo el trabajo de determinar el identificador del pin de control porque el minidriver BDA proporcionó la biblioteca de soporte técnico con un puntero a la estructura de BDA_FILTER_TEMPLATE cuando el minidriver BDA comenzó a funcionar. Vea Iniciar un minidriver de BDA para obtener más información. Un minidriver BDA informa a la biblioteca de soporte técnico de BDA cómo determinar los pins de control a través de la información contenida en BDA_FILTER_TEMPLATE. Esta información incluye lo siguiente:

  • Matriz de conexiones. Esta matriz es una matriz KSTOPOLOGY_CONNECTION que proporciona una representación de todas las posibles conexiones entre los tipos de nodo y pin que se pueden realizar dentro de un filtro o entre un filtro y filtros adyacentes. Consulte Topología de conexión de asignación para obtener más información sobre la matriz de KSTOPOLOGY_CONNECTION.

  • Matriz de valores conjuntos. Una unión es un punto de la topología donde una entrada se divide en una o varias rutas de acceso a salidas diferentes, o una o varias entradas se unen en una única ruta de acceso de salida. El valor proporcionado a una articulación corresponde al índice de un elemento de la matriz KSTOPOLOGY_CONNECTION. La mayoría de las topologías solo tendrán una articulación.

  • Matriz de estructuras de BDA_PIN_PAIRING . Estas estructuras identifican los tipos de pin de entrada y salida, el número máximo de instancias de tipo de entrada que se pueden crear en el filtro y el número máximo de instancias de tipo de salida que se pueden crear en el filtro. Estas estructuras también contienen un puntero a la matriz de valores conjuntos entre las patillas de entrada y salida. Vea Iniciar un minidriver de BDA para obtener más información sobre la matriz de BDA_PIN_PAIRING.

En la ilustración siguiente se muestra cómo la biblioteca de compatibilidad determina el pin de filtro que controla un nodo específico:

diagrama que ilustra cómo la biblioteca de soporte técnico determina el pin de filtro que controla un nodo específico.