AVStream Minidriver 초기화

자체적으로 디바이스 초기화를 처리하지 않는 AVStream 미니드라이버가 미니드라이버의 DriverEntry 루틴에서 KsInitializeDriver를 호출합니다. KsInitializeDriver 는 IRP 디스패치, PnP 디바이스 메시지 추가 및 언로드 외에도 AVStream 드라이버의 드라이버 개체를 초기화합니다.

KsInitializeDriver를 호출할 때 미니 드라이버는 드라이버 개체에 대한 포인터를 전달하여 레지스트리 경로에 대한 포인터를 초기화하고 필요에 따라 디바이스 설명자 개체를 초기화합니다. KSDEVICE_DESCRIPTOR 개체를 전달할 필요는 없습니다. 미니드라이버가 디바이스 설명자를 전달하는 경우 AVStream은 AddDevice 시간에 지정된 특성을 가진 디바이스를 만듭니다.

디바이스 설명자 개체에는 KSDEVICE_DISPATCH 구조체에 대한 포인터와 필터 설명자 배열이 포함되어 있습니다. 미니드라이버에서 지원하는 각 필터 유형에 대한 KSFILTER_DESCRIPTOR 제공합니다. 미니드라이버가 KsInitializeDriver를 호출하면 AVStream은 미니 드라이버에서 노출하는 각 필터 유형에 대한 필터 팩터리 개체를 만듭니다. 그런 다음, 연결된 만들기 항목에 대한 만들기 IRP를 받으면 필터 팩터리에서 개별 필터를 인스턴스화합니다. 각 필터 설명자에는 KSPIN_DESCRIPTOR_EX 개체 배열에 대한 포인터 포함되어 있습니다. AVStream은 미니드라이버가 해당 필터를 통해 노출하는 각 핀 유형에 대한 관련 필터에 핀 팩터리를 만듭니다.

필터에서 지정된 핀 형식에 연결하면 AVStream 핀 팩터리는 핀 개체를 만듭니다. 각 필터는 하나 이상의 핀을 노출해야 합니다. 미니 드라이버는 KSPIN_DESCRIPTOR_EX InstancesNecessary 멤버를 사용하여 필터가 올바르게 작동하는 데 필요한 이 핀 유형의 인스턴스 수를 식별합니다. 마찬가지로 미니드라이버에서는 이 구조체의 InstancesPossible 멤버를 사용하여 핀 팩터리에서 인스턴스화할 수 있는 핀 수를 최대로 지정할 수 있습니다.

AVStream은 필터 중심 처리 및 중심 처리의 두 가지 처리 유형을 지원합니다. 설명자를 배치할 때 각 필터 형식이 수행할 처리 유형을 결정합니다.

AVStream Minidriver 설치

AVStream 미니드라이버에는 시스템에서 드라이버를 설치하는 데 사용하는 INF 파일이 있어야 합니다. AVStream INF 파일은 일반적인 INF 형식을 기반으로 하며 INF 파일 만들기에 설명되어 있습니다. WDK(Windows 드라이버 키트)에서 AVStream 샘플 드라이버와 함께 제공되는 INF 파일을 참조할 수도 있습니다. 다음 AVStream 관련 지침에 유의하세요.

부모 디바이스에 대한 미니 드라이버를 작성하는 경우 INF 파일의 AddReg 섹션에 다음이 포함되어야 합니다.

[ParentName.AddReg]
HKR,"ENUM\[DeviceName]",pnpid,,"[string]"

자식 디바이스에 대한 미니 드라이버를 작성하는 경우 AddReg 섹션에는 다음이 포함되어야 합니다.

[Manufacturer]
...=ChildName
[ChildName]
...=ChildName.Device,AVStream\[string]

"AVStream"은 스트림 클래스 드라이버의 경우 "Stream"입니다.

모든 AVStream 미니드라이버의 경우 INF 파일의 필터별 참조 문자열이 KSFILTER_DESCRIPTOR 구조체의 ReferenceGuid 멤버와 일치해야 합니다.

설명자에 대한 자세한 내용은 AVStream 설명자를 참조하세요.