다음을 통해 공유


KsMergeAutomationTables 함수(ks.h)

KsMergeAutomationTables 함수는 두 개의 자동화 테이블을 병합합니다.

구문

KSDDKAPI NTSTATUS KsMergeAutomationTables(
  [out]          PKSAUTOMATION_TABLE *AutomationTableAB,
  [in, optional] PKSAUTOMATION_TABLE AutomationTableA,
  [in, optional] PKSAUTOMATION_TABLE AutomationTableB,
  [in, optional] KSOBJECT_BAG        Bag
);

매개 변수

[out] AutomationTableAB

KSAUTOMATION_TABLE 대한 포인터가 보관되는 위치에 대한 포인터입니다. 이 구조체는 결과 병합된 자동화 테이블입니다.

[in, optional] AutomationTableA

병합할 두 자동화 테이블 중 첫 번째를 나타내는 KSAUTOMATION_TABLE 구조체에 대한 포인터입니다. 이 테이블은 중복 항목과 관련된 주요 테이블입니다. NULL이면 AutomationTableBAutomationTableAB에 복사되고 필요에 따라 Bag에 배치됩니다.

[in, optional] AutomationTableB

병합할 두 자동화 테이블 중 두 번째를 나타내는 KSAUTOMATION_TABLE 구조체에 대한 포인터입니다. NULL이면 AutomationTableAAutomationTableAB에 복사되고 필요에 따라 Bag에 배치됩니다.

[in, optional] Bag

새로 만든 자동화 테이블은 나중에 클린 위해 이 KSOBJECT_BAG 배치됩니다(PVOID 형식과 동일). 이 매개 변수는 선택적 요소입니다.

반환 값

병합이 성공적으로 완료되면 KsMergeAutomationTables 는 STATUS_SUCCESS 반환합니다. 실패하면 오류 코드가 반환됩니다. 가장 자주 발생하는 오류 코드는 STATUS_INSUFFICIENT_RESOURCES 병합을 완료하는 데 시스템 리소스가 충분하지 않음을 나타냅니다.

설명

AutomationTableAAutomationTableB가 모두 NULL인 경우 이 루틴은 아무 작업도 수행하지 않고 STATUS_SUCCESS 반환합니다.

AutomationTableA의 항목은 병합에 우선 순위가 있습니다.AutomationTableAAutomationTableB 모두에 표시되는 항목이 있는 경우 AutomationTableA의 항목은 병합된 테이블에 배치되는 항목입니다. 새로 만든 자동화 테이블은 제공된 경우 요청된 개체 모음에 배치됩니다.

호출 시 입력 테이블이 개체 모음에 있는 경우 AVStream은 KsMergeAutomationTables가 반환되기 전에 개체 모음에서 테이블을 제거합니다.

Bag 매개 변수가 NULL이 아니면 미니드라이버가 이 루틴을 호출하기 전에 개체 모음과 연결된 뮤텍스를 가져와야 합니다. 가방이 핀 또는 필터와 연결된 경우 컨트롤 뮤텍스를 유지해야 합니다. 가방이 필터 팩터리 또는 디바이스와 연결된 경우 디바이스 뮤텍스를 유지해야 합니다. 자세한 내용은 AVStream의 뮤텍스를 참조하세요.

개체 모음자동화 테이블 정의를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Microsoft Windows XP 이상 운영 체제 및 DirectX 8.0 이상 DirectX 버전에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 ks.h(Ks.h 포함)
라이브러리 Ks.lib
IRQL PASSIVE_LEVEL

추가 정보

KsAddItemToObjectBag

KsCopyObjectBagItems

KsRemoveItemFromObjectBag