다음을 통해 공유


노드의 제어 핀 확인

필터 및 핀과 달리 노드에는 링 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 미니드라이버 시작을 참조하세요.

다음 그림에서는 지원 라이브러리가 특정 노드를 제어하는 필터 핀을 결정하는 방법을 보여 줍니다.

지원 라이브러리가 특정 노드를 제어하는 필터 핀을 결정하는 방법을 보여 주는 다이어그램