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 설명자를 참조하세요.