노드의 제어 핀 확인
필터 및 핀과 달리 노드에는 링 3의 애플리케이션이 액세스할 수 있는 연결된 파일 핸들이 없습니다. 노드는 필터 내의 내부 구성 요소이므로 필터의 입력 핀과 출력 핀 사이에 존재합니다. 네트워크 공급자는 사용할 필터 핀을 결정한 다음 핀을 사용하여 노드에 액세스해야 합니다. 이 필터 핀을 해당 노드의 제어 핀이라고 합니다. 필터의 BDA 템플릿 연결 목록에서 각 노드에 대한 제어 핀을 결정하기 위해 네트워크 공급자는 KSPROPSETID_BdaTopology 속성 집합의 KSPROPERTY_BDA_CONTROLLING_PIN_ID 속성을 쿼리합니다. BDA 미니드라이버가 각 노드에 대해 BdaPropertyGetControllingPinId 지원 함수를 호출합니다. 이 호출에서 미니 드라이버는 KSP_BDA_NODE_PIN 구조체에 대한 포인터를 전달합니다. 이 구조체는 특정 노드 유형 및 필터의 입력 및 출력 핀 쌍에 대한 제어 핀을 검색하기 위한 속성 요청을 식별합니다. BDA 지원 라이브러리는 노드 유형에 대한 제어 핀의 식별자를 반환합니다.
BDA 미니 드라이버는 일반적으로 KSPROPERTY_BDA_CONTROLLING_PIN_ID 속성을 가로채지 않습니다. 미니 드라이버는 KSPROPSETID_BdaTopology 속성 집합에서 BdaPropertyGetControllingPinId 지원 함수를 자동으로 디스패치합니다. 자세한 내용은 BDA 디바이스 토폴로지 확인 을 참조하세요.
BDA 미니드라이버가 BDA 미니드라이버 작동을 시작할 때 지원 라이브러리에 BDA_FILTER_TEMPLATE 구조에 대한 포인터를 제공했기 때문에 지원 라이브러리는 제어 핀의 식별자를 확인하는 모든 작업을 수행할 수 있습니다. 자세한 내용은 BDA 미니드라이버 시작을 참조하세요. BDA 미니드라이버가 BDA 지원 라이브러리에 BDA_FILTER_TEMPLATE 포함된 정보를 통해 핀 제어를 확인하는 방법을 알려줍니다. 여기에는 다음 정보가 포함됩니다.
연결 배열입니다. 이 배열은 필터 내에서 또는 필터와 인접 필터 간에 만들 수 있는 노드와 핀 형식 간의 가능한 모든 연결을 나타내는 KSTOPOLOGY_CONNECTION 배열입니다 . KSTOPOLOGY_CONNECTION 배열에 대한 자세한 내용은 연결 토폴로지 매핑 을 참조하세요.
조인트 값의 배열입니다. 조인트는 하나의 입력이 다른 출력에 대한 하나 이상의 경로로 분할되거나 하나 이상의 입력이 단일 출력 경로에 조인되는 토폴로지의 지점입니다. 조인트에 지정된 값은 KSTOPOLOGY_CONNECTION 배열에 있는 요소의 인덱스에 해당합니다. 대부분의 토폴로지는 하나의 조인트만 갖게 됩니다.
BDA_PIN_PAIRING 구조체의 배열입니다. 이러한 구조는 입력 및 출력 핀 형식, 필터에서 만들 수 있는 최대 입력 형식 인스턴스 수 및 필터에서 만들 수 있는 출력 형식 인스턴스의 최대 수를 식별합니다. 이러한 구조체에는 입력 핀과 출력 핀 간의 조인트 값 배열에 대한 포인터도 포함됩니다. BDA_PIN_PAIRING 배열에 대한 자세한 내용은 BDA 미니드라이버 시작을 참조하세요.
다음 그림에서는 지원 라이브러리가 특정 노드를 제어하는 필터 핀을 결정하는 방법을 보여 줍니다.