Einführung in Adapterobjekte

Jeder Treiber, der direkte E/A und DMA verwendet, muss ein Adapterobjekt erstellen. Das Adapterobjekt stellt entweder einen DMA-Controllerkanal oder -Port oder ein Bus-master-Gerät dar.

Zwei Arten von Treibern der niedrigsten Ebene müssen Adapterobjekte verwenden:

  • Treiber für Geräte, die den DMA-Controller des Systems verwenden. Solche Geräte werden als untergeordnete Geräte bezeichnet und als "System(oder untergeordnetes) DMA" bezeichnet.

  • Treiber für Geräte, bei denen es sich um Bus-master-Adapter handelt. Solche Geräte sind mit dem System für die Verwendung des E/A-Busses in Schied und verwenden daher bus-master DMA.

Treiber stellen Speicher bereit, normalerweise in einer Geräteerweiterung, für einen Zeiger auf das Adapterobjekt.

Zum Durchführen von DMA-Übertragungen verfügen Treiber von Geräten, die eine dieser DMA-Methoden verwenden, in der Regel über eine AdapterControl-Routine und rufen vom System bereitgestellte Supportroutinen auf, die Adapterobjekte bearbeiten. (Treiber, die keine AdapterControl-Routinen erfordern, umfassen solche, die scatter/gather DMA verwenden, und solche, die common-buffer, bus-master DMA verwenden.)

Im Rahmen von Gerätestartvorgängen rufen Treiber, die DMA-Vorgänge verarbeiten, den E/A-Manager auf, der wiederum die plattformspezifische HAL aufruft, um eine Reihe von Adapterobjekten zu erstellen. Auf jeder Windows-Plattform enthält der Satz von Adapterobjekten in der Regel ein Adapterobjekt für:

  • Jeder DMA-Controllerkanal oder -Port des Systems, an den ein untergeordnetes Gerät angefügt ist.

  • Jedes Bus-master DMA-Gerät auf dem Computer.

(Für SCSI-Geräte, die bus-master DMA verwenden können, richtet der SCSI-Porttreiber Adapterobjekte für HBA-spezifische SCSI-Miniporttreiber ein. Die HwScsiFindAdapter-Routine des Miniporttreibers versorgt den Porttreiber mit adapterspezifischen Daten.)

Weitere Informationen dazu, wann und wie Treiber Adapterobjekte und AdapterControl-Routinen verwenden, finden Sie unter Verwenden von Bus-Master DMA.

Aktivieren der DMA-Neuzuordnung für Gerätetreiber