初始化 AVStream Minidriver
AVStream 迷你驅動程式,不會在自己的呼叫 KsInitializeDriver 上從 minidriver 的 DriverEntry 常式處理裝置初始化。 KsInitializeDriver 除了 IRP 分派、PnP 新增裝置訊息和卸載之外,還會初始化 AVStream 驅動程式的驅動程式物件。
在呼叫 KsInitializeDriver時,minidriver 會將指標傳遞給驅動程式物件,以初始化登錄路徑的指標,並選擇性地傳遞裝置描述元物件。 請注意,不需要傳遞 KSDEVICE_DESCRIPTOR 物件。 如果迷你驅動程式確實傳遞裝置描述元,AVStream 會在 AddDevice 時間建立具有指定特性的裝置。
裝置描述項物件包含 KSDEVICE_DISPATCH 結構的指標,以及篩選描述元陣列。 為 minidriver 支援的每個篩選類型提供 KSFILTER_DESCRIPTOR 。 當 minidriver 呼叫 KsInitializeDriver時,AVStream 會針對 minidriver 公開的每個篩選類型建立篩選 Factory 物件。 然後在收到相關聯建立專案的建立 IRP 時,由篩選處理站具現化個別篩選。 每個篩選描述項都包含 KSPIN_DESCRIPTOR_EX物件的陣列 指標。 AVStream 會針對迷你驅動程式透過該篩選器公開的每個釘選類型,在相關篩選上建立針腳處理站。
當連線到篩選上的指定針腳類型時,AVStream 針腳處理站會建立 Pin 物件。 請注意,每個篩選準則都必須至少公開一個針腳。 迷你驅動程式會使用 KSPIN_DESCRIPTOR_EX 的 InstancesNecessary 成員來識別此針腳類型實例的數目,而此針腳類型必須正確運作。 同樣地,迷你驅動程式可以在針腳處理站可以使用這個 結構的 InstancesPossible 成員具現化針腳數目上限。
AVStream 支援兩種類型的處理: 以篩選為主的處理,以及 以針腳為中心的處理。 配置描述項時,決定每個篩選類型將執行的處理類型。
安裝 AVStream Minidriver
AVStream 迷你驅動程式必須有一個 INF 檔案,系統用來安裝驅動程式。 AVStream INF 檔案是以常見的 INF 格式為基礎,如 建立 INF 檔案中所述。 您也可以參考 Windows 驅動程式套件中 AVStream 範例驅動程式所提供的 INF 檔案, (WDK) 。 請記住下列 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 描述元。