次の方法で共有


アダプター オブジェクトの概要

ダイレクト I/O と DMA を使用するすべてのドライバーは、アダプター オブジェクトを作成する必要があります。 アダプター オブジェクトは、DMA コントローラー チャネルまたはポート、またはバス マスター デバイスを表します。

2 種類の最下位レベルのドライバーでは、アダプター オブジェクトを使用する必要があります。

  • システム 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 の使用」を参照してください。

デバイス ドライバーの DMA 再マッピングの有効化