Share via


WDM 音訊術語

本節說明 Microsoft Windows 驅動程式模型 (WDM) 音訊驅動程式架構和一般 Windows 層次驅動程式架構之間的術語差異。 一般驅動程式架構是由 SCSI 埠/迷你埠驅動程式所示範, (請參閱 儲存體驅動程式架構) 。

泛型和 WDM 音訊驅動程式架構所定義的詞彙很類似,但它們確實有一些重要的差異,如下所述。

Miniport Driver (Generic)

迷你埠驅動程式 (一般) 是位於系統匯流排 (上的介面卡硬體專用驅動程式,例如 PCI 或 ISA) 。 此驅動程式具有單一進入點 DriverEntry,並使用埠驅動程式註冊函式資料表。 此函式資料表可作為迷你埠驅動程式的上邊緣介面。

迷你埠驅動程式位於驅動程式堆疊中的埠驅動程式下方。 也就是說,所有對迷你埠驅動程式的呼叫都是從埠驅動程式進行,而迷你埠驅動程式的所有呼叫都是埠驅動程式的下邊緣介面。

下圖說明在此內容中使用的字詞 堆疊上邊緣介面下邊緣介面 的意義。 代表埠驅動程式的區塊會堆疊在代表迷你埠驅動程式的區塊之上。 因此,迷你埠驅動程式位於 「堆疊」的埠驅動程式下方。

圖表說明驅動程式堆疊與下方埠驅動程式的埠驅動程式,並顯示上邊緣和下邊緣介面。

埠和迷你埠驅動程式會透過彼此公開的軟體介面進行通訊。 在上圖中,這些介面會與代表埠驅動程式的區塊下邊緣和代表迷你埠驅動程式之區塊的上邊緣相關聯。 此標記法是「下邊緣介面」和「上邊緣介面」等詞彙的來源。

埠驅動程式 (一般)

埠驅動程式 (泛型) 圍繞迷你埠驅動程式。

埠驅動程式:

  • 實作 WDM 串流篩選器。

  • 提供作業系統其餘部分的通用介面。

  • 處理來自系統的 I/O 要求,並將這些要求重新轉型為迷你埠驅動程式函式資料表的呼叫。

  • (埠驅動程式的下邊緣介面) ,提供迷你埠驅動程式的支援函式程式庫。

埠驅動程式會從迷你埠驅動程式隱藏作業系統的許多詳細資料,而迷你埠驅動程式會從埠驅動程式隱藏基礎硬體的細節。 埠驅動程式的實作可能會針對不同的作業系統版本進行變更,但迷你埠驅動程式的埠驅動程式介面仍維持不變,讓迷你埠驅動程式與平臺無關。

Minidriver (泛型)

迷你驅動程式 (一般) 代表匯流排上的硬體元件。 迷你驅動程式會使用匯流排驅動程式透過匯流排與實體裝置通訊,並將匯流排驅動程式和一或多個類別驅動程式系結在一起。

類別驅動程式 可協助迷你驅動程式將實體裝置呈現給用戶端作為邏輯裝置類型。 在 WDM 環境中,迷你驅動程式通常會從類別驅動程式接收 IRP 表單中的要求,並將 IRP 表單中的要求傳送至匯流排驅動程式。

迷你驅動程式可能也必須與數個類別驅動程式通訊。 系結至多個類別驅動程式的迷你驅動程式範例是 IEEE 1394 匯流排上 CD-ROM 磁片磁碟機的迷你驅動程式。 它可能會系結至檔案系統驅動程式,以便從檔案系統存取磁片磁碟機。 不過,它也會系結至 Redbook 系統驅動程式 ,以便從 CD 串流音訊。

匯流排驅動程式 (一般)

匯流排驅動程式 (一般) 可讓迷你驅動程式存取實體匯流排。 Microsoft Windows 硬體抽象層 (HAL) 有時稱為 系統匯流排驅動程式 ,因為它可提供系統匯流排的存取權。 如需詳細資訊,請參閱 匯流排驅動程式

類別驅動程式 (泛型)

類別驅動程式 (泛型) 實作在類似裝置類別中通用的行為。

類別驅動程式:

  • 消除硬體特定驅動程式中的功能重複。

  • 不是匯流排特定的。

  • 例如,DMA 和中斷) (不知道資源問題。

Miniport Driver (WDM 音訊)

迷你埠驅動程式 (WDM 音訊) 實作位於系統匯流排之音訊配接卡上函式的函式特定介面。 迷你埠驅動程式是配接器驅動程式的元件。 作業系統無法將其辨識為驅動程式。 在此方面,音訊迷你埠驅動程式與一般迷你埠驅動程式不同。

不同于一般迷你埠驅動程式,音訊迷你埠驅動程式不會實作 DriverEntry、未註冊,也不會完全依賴其各自的埠驅動程式來支援。 定址多個函式的多個音訊迷你埠驅動程式可以連結至單一介面卡驅動程式 (,並與單一裝置物件相關聯) 。

配接器驅動程式 (WDM 音訊)

配接器驅動程式 (WDM 音訊) 可作為與指定配接器相關聯之所有迷你埠驅動程式的容器。 此配接器驅動程式是由作業系統辨識為驅動程式,並包含在自己的 .sys 檔案中。

音訊配接器驅動程式包含一組迷你埠驅動程式,以及可解決初始化問題的其他程式碼。 例如,配接器驅動程式會實作 DriverEntry 進入點。

埠驅動程式 (WDM 音訊)

埠驅動程式 (WDM 音訊) 代表迷你埠驅動程式實作 KS 篩選器,並在埠類別驅動程式的內容中運作。 埠驅動程式會將迷你埠驅動程式的函式特定程式碼公開為系統的 KS 篩選器,並負責實作與配接器無關的功能。

不同于一般埠驅動程式,音訊埠驅動程式會共用裝置物件,因此會以不同的方式具現化。 音訊埠驅動程式也更類似于泛型類別驅動程式,因為它會實作預期裝置類別的行為, (它與匯流排無關) 。

埠類別驅動程式 (WDM 音訊)

埠類別驅動程式 (WDM 音訊) 可作為埠驅動程式集合的容器,每個驅動程式都支援不同類型的音訊硬體功能。 下圖顯示音訊埠類別與配接器驅動程式之間的關聯性。

此圖顯示音訊埠類別驅動程式、配接器驅動程式及其各自的迷你埠驅動程式之間的關聯性。

配接器驅動程式會管理可能包含數個不同硬體功能的介面卡卡。 如上圖所示,配接器驅動程式包含迷你埠驅動程式來管理每種硬體功能類型。 同樣地,埠類別驅動程式的設計目的是為了支援具有多個硬體功能的介面卡。 埠類別驅動程式會為其支援的每個定義完善的函式類型提供埠驅動程式。 配接器驅動程式會將其特定函式的迷你埠驅動程式系結至該函式類型的對應埠驅動程式。 每個函式的埠驅動程式都會處理與使用函式之 WDM 音訊用戶端的通訊。 迷你埠驅動程式包含用於管理該函式的所有硬體特定程式碼。

埠類別驅動程式 (WDM 音訊) 主要可作為與單一裝置物件相關聯之多個子裝置的容器。 匯流排驅動程式會針對所列舉的每個 隨插即用 (PnP) 節點, (PDO) 建立單一實體裝置物件

在音訊配接器的情況下,單一 PnP 節點經常包含多個音訊函式。 若要將與節點相關聯的各種函式公開為不同的裝置,通常需要為介面卡撰寫匯流排驅動程式。 匯流排驅動程式會列舉硬體功能,並建立對應的 PDO。 在此案例中,一或多個函式特定驅動程式必須系結至 PDO,並與匯流排驅動程式交涉,以存取介面卡上的共用資源。

埠類別驅動程式會使用核心串流驅動程式的能力來公開單一裝置物件的各種層面,讓作業系統將裝置辨識為一組不同的子裝置。

參考字串會附加至裝置名稱,以指定所需的子裝置。 核心串流驅動程式會根據這個參考字串分派建立 IRP。 建立檔案物件之後,核心串流驅動程式會提供以代表子裝置之檔案物件為目標的 IRP 分派。 此外,埠類別驅動程式會實作 COM 型模型來封裝子裝置。

介面卡驅動程式會具現化埠驅動程式和迷你埠驅動程式,並將它們系結在一起,方法是將指標傳遞至迷你埠驅動程式作為埠驅動程式初始化函式的參數, (請參閱 Subdevice Creation) 中的程式碼範例。 產生的埠/迷你埠驅動程式堆疊構成 KS 篩選器,代表埠類別驅動程式支援的其中一個子裝置類型。

埠類別驅動程式的 PcRegisterSubdevice 函式會註冊子裝置,這是由系統其餘部分視為裝置。 埠驅動程式會接收以裝置物件為目標的建立 IRP,但僅針對登錄子裝置的參考字串所指定的 IRP。 埠驅動程式也會接收以子裝置相關聯之檔案物件為目標的 IRP。 埠驅動程式負責作為 KS 篩選器的子裝置行為,以及適當地與迷你埠驅動程式通訊。

如需設計多功能音訊卡驅動程式的詳細資訊,請參閱 多功能音訊裝置