共用方式為


Pin Factory

音訊篩選器的釘選處理站會描述篩選準則可以具現化的所有針腳。 如先前所述,音訊迷你埠驅動程式會將針腳資訊儲存在 PCPIN_DESCRIPTOR 結構的陣列中。 每個結構都會指定針腳處理站,而且針腳處理站是由陣列中的索引所識別。 此索引通常稱為 針腳識別碼

PCPIN_DESCRIPTOR 結構包含自動化資料表和 KSPIN_DESCRIPTOR 結構。

KSPIN_DESCRIPTOR 結構包含釘選處理站中針腳的下列資訊:

  • 資料流程的篩選相對方向

  • 通訊流程的篩選相對方向 (在所有目前的 Windows 版本中,KS 篩選器會使用 IRP 進行通訊。)

  • 釘選類別

  • 易記名稱

  • 實例功能

  • 資料格式功能

結構的 CategoryName 成員會指定釘選處理站的針腳類別和易記名稱。 針對篩選中的每個針腳處理站,迷你埠驅動程式會指定 類別名稱 GUID 的組合,以唯一識別針腳處理站。 如果兩個以上的針腳處理站共用相同的 Category 值,則每個針腳處理站都有一個 名稱 值,可將它與其他釘選處理站區別。 如果只有單一針腳處理站具有特定的 Category 值,該值就足以識別針腳處理站,而且該針腳處理站的 Name 值可以設定為 Null。 如需程式碼撰寫範例,請參閱 公開篩選拓撲。 如需釘選類別的相關資訊,請參閱 Pin 類別屬性

針腳處理站會指定它支援的資料格式範圍,做為擴充 KSDATARANGE 結構的陣列:

  • 針腳處理站,支援其輸入或輸出資料流程的波浪或 DirectSound 資料格式範圍,會指定 KSDATARANGE_AUDIO 結構的陣列。

  • 針腳處理站,支援其輸入或輸出資料流程的 MIDI 或 DirectMusic 資料格式範圍,可指定 KSDATARANGE_MUSIC 結構的陣列。

KSDATARANGE_AUDIO和KSDATARANGE_MUSIC是 KSDATARANGE 的擴充版本。 如需這兩種資料類型的範例,請參閱 音訊資料格式和資料範圍

將某個篩選上的接收針腳連接到另一個篩選上的來源針腳之前,圖形產生器 (例如 ,SysAudio 系統驅動程式) 可以搜尋相容格式的資料範圍。 圖形產生器通常會呼叫篩選 的資料交集處理常式,這可讓篩選本身選擇相容的格式。

篩選可以有多個針腳處理站,而針腳處理站可以支援多個針腳實例。

  • 在篩選上有多個針腳處理站,有助於區分流經篩選之不同資料類型的資料路徑。 例如,一個針腳處理站可能支援 PCM 資料流程,而另一個針腳處理站可能支援 AC-3 資料流程。

  • 單一篩選可以同時支援轉譯和擷取資料流程。 轉譯和擷取路徑有個別的篩選處理站集合。

  • 在接收釘選處理站上有多個針腳實例經常表示混合,在此情況下,篩選準則包含 SUM 節點 (KSNODETYPE_SUM) 。

如同篩選,針腳是核心物件,並由核心控制碼識別。 釘選實例的控制碼是藉由呼叫 KsCreatePin所建立。 作為核心物件,可以將針腳指定為 IRP 的目標。 驅動程式的用戶端會在將 IOCTL 要求傳送至針腳時指定針腳控制碼。

建置 音訊篩選圖形時,SysAudio 會藉由連接其釘選,將一個篩選連結至另一個篩選。 一個篩選的來源針腳可以連接到另一個篩選準則的接收針腳。 來自來源針腳的資料和 IRP 會透過此連線流向接收針腳。 若要建立連線,圖形產生器通常會 (SysAudio) 先呼叫 KsCreatePin 建立來源釘選,然後再呼叫 KsCreatePin 來建立接收釘選。 不過,在第二次呼叫中,用戶端會指定新的接收針腳要連接到第一次呼叫中建立的來源針腳。