KSFILTERFACTORY 구조체(ks.h)

KSFILTERFACTORY 구조체는 필터 팩터리를 나타냅니다.

구문

typedef struct _KSFILTERFACTORY {
  const KSFILTER_DESCRIPTOR *FilterDescriptor;
  KSOBJECT_BAG              Bag;
  PVOID                     Context;
} KSFILTERFACTORY, *PKSFILTERFACTORY;

멤버

FilterDescriptor

이 팩터리에서 만든 필터의 특성을 설명하는 KSFILTER_DESCRIPTOR 구조체에 대한 포인터입니다.

Bag

이 멤버는 이 필터 팩터리에 연결된 KSOBJECT_BAG(PVOID 형식에 해당)을 지정합니다. 개체 모음은 동적 메모리를 특정 AVStream 개체와 연결하는 데 사용되는 구조체입니다. 필터 팩터리 개체 모음의 모든 항목은 필터 팩터리를 삭제하면 자동으로 정리됩니다. 자세한 내용은 개체 모음 의 개념 섹션을 참조하세요.

Context

클라이언트가 컨텍스트 정보를 필터 팩터리에 연결하는 데 사용할 수 있는 메모리 주소에 대한 포인터입니다. AVStream은 어떤 식으로든 이 멤버를 사용하지 않습니다. 필터 팩터리에 연결된 동적 메모리는 KsAddItemToObjectBag을 사용하여 개체 모음에 배치해야 합니다. 컨텍스트는 팩터리를 만들 때 부모 KSDEVICEContext 멤버 값으로 초기화됩니다. AVStream 개체 계층 구조를 참조하세요.

설명

필터 팩터리는 필터 설명자에서 설명한 대로 지정된 유형의 필터를 인스턴스화하는 디바이스의 기능을 명시적으로 나타냅니다.

하드웨어용 드라이버는 일반적으로 이 구조를 사용하여 필터 유형으로 노출되는 하드웨어의 특정 기능을 관리합니다. 소프트웨어 필터는 일반적으로 이 수준에서 디바이스를 관리할 필요가 없습니다.

필터 팩터리 개체는 두 가지 방법으로 만들어집니다. 디바이스 설명자의 필터 설명자 목록에 표시된 대로 AddDevice 처리 중에 만들 수 있습니다. KsCreateFilterFactory 호출에서 클라이언트에서 명시적으로 만들 수도 있습니다. 클라이언트는 언제든지 필터 팩터리를 만들 수 있지만 할당된 리소스 평가에서 디바이스에서 노출해야 하는 필터 유형을 나타내는 경우 일반적으로 PnP 시작 IRP를 처리하는 동안 수행됩니다.

동기화를 위해 암시적으로 생성된 필터 팩터리의 수명은 클라이언트의 디바이스 create dispatch 함수가 호출될 때(또는 가) 호출되고 클라이언트의 디바이스 PnP 제거 디스패치 함수가 호출된 후 종료되는 간격으로 정의됩니다. KsCreateFilterFactory를 호출하여 명시적으로 만든 필터 팩터리의 수명은 해당 호출이 반환된 직후에 시작됩니다.

개체 모음도 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Microsoft Windows XP 이상 운영 체제 및 Microsoft DirectX 8.0 이상 버전에서 사용할 수 있습니다.
머리글 ks.h(Ks.h 포함)

추가 정보

KSFILTER_DESCRIPTOR

KsAddItemToObjectBag

KsCreateFilterFactory