Windows Driver framework での DMA の概要
[KMDF のみに適用]
Windows 7 以前では、カーネル モード ドライバー フレームワーク (KMDF) では、バス マスター ダイレクト メモリ アクセス (DMA) デバイスのみがサポートされています。 このようなデバイスには、独自の DMA コントローラーが含まれています。
Windows 8 以降を実行する System on a Chip (SoC) ベースのプラットフォームでは、このフレームワークは、複数のデバイスが 1 つのマルチチャネル DMA コントローラーを共有するシステム モード DMA もサポートします。
フレームワークの DMA サポートは、次のもので構成されます:
ドライバーが I/O リクエストを DMA 操作に変換するために使用するフレームワーク DMA オブジェクトとメソッドのセット。
さまざまなイベントが発生したときにデバイスの DMA 動作を構成する、ドライバーが提供するイベント コールバック関数のセット。
このフレームワークは、シングルパケットとスキャッター/ギャザー DMA 転送の両方をサポートしています。 また、共通バッファーの使用もサポートしています。
Windows 8 以降を実行する SoC ベースのプラットフォームでは、フレームワークはシングルパケットシステム モードのDMA 転送をサポートしています。 詳細については、 Supporting System-Mode DMAをご参照ください。
このフレームワークは、PC ベースのプラットフォームでのシステム モードの DMA 転送をサポートしていません。