配接器物件的簡介
任何使用直接 I/O 和 DMA 的驅動程式都必須建立配接器物件。 配接器物件代表 DMA 控制器通道或埠,或總線主要裝置。
兩種最低層級驅動程序必須使用配接器物件:
使用系統 DMA 控制器之裝置的驅動程式。 這類裝置稱為 次級裝置,據說是“使用系統(或 次級)DMA”。
總線主控器裝置的驅動程式。 這類裝置會與系統進行仲裁以使用 I/O 總線,因此使用總線控制器的 DMA。
驅動程式通常會在裝置擴充功能中存儲指向配接器物件的指標。
為了執行 DMA 傳輸,使用這些 DMA 方法的驅動程式通常具有 AdapterControl 例行程序,並呼叫系統提供的支援例行程序以操作配接器物件。 (不需要 AdapterControl 例程的驅動程式包括使用 散佈/集結 DMA 的驅動程式,以及使用 共用緩衝區、匯流排主控 DMA的驅動程式。)
作為裝置啟動作業的一部分,處理 DMA 作業的驅動程式會呼叫 I/O 管理員,進而呼叫平臺特定的 HAL 來建立一組配接器物件。 在任何 Windows 平台上,配接器物件的集合通常包含以下的配接器物件:
附屬裝置所連結的每個系統 DMA 控制器通道或埠。
系統中的每個總線控制 DMA 裝置。
(對於能夠使用總線主控 DMA 的 SCSI 裝置,SCSI 埠驅動程式會設定 HBA 特定 SCSI 小型埠驅動程式的配接卡物件。小型埠驅動程式的 HwScsiFindAdapter 函式會提供埠驅動程式配接器特定資料。)
如需有關驅動程式何時以及如何使用配接器物件和 AdapterControl 例程的詳細資訊,請參閱本節以及 使用 Bus-Master DMA。