Teilen über


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 einen Anschluss oder ein Busmastergerät dar.

Zwei Arten von Treibern auf niedrigster Ebene müssen Adapterobjekte verwenden:

  • Treiber für Geräte, die den DMA-Systemcontroller verwenden. Solche Geräte werden als untergeordnete Geräte bezeichnet und nutzen das System-DMA (oder untergeordnete DMA).

  • Treiber für Geräte, die Busmasteradapter sind. Solche Geräte verhandeln mit dem System um die Nutzung des I/O-Busses und verwenden somit Bus-Master-DMA.

Treiber bieten Speicher, in der Regel in einer Geräteerweiterung, für einen Zeiger auf das Adapterobjekt.

Zum Ausführen von DMA-Übertragungen verfügen Treiber von Geräten, die eine dieser DMA-Methoden verwenden, in der Regel über eine AdapterControl-Routine und vom System bereitgestellte Supportroutinen, die Adapterobjekte bearbeiten. (Treiber, die keine AdapterControl-Routinen erfordern, umfassen Scatter/Gather-DMA und solche, die Bus-Master-DMA mit gemeinsamer Puffer 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 ein Adapterobjekt für:

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

  • Jedes Busmaster-DMA-Gerät auf dem Computer.

Der E/A-Manager und DIE HAL arbeiten zusammen, um das entsprechende Adapterobjekt basierend auf den DMA-Funktionen und der Systemkonfiguration des Geräts zuzuweisen.

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

Weitere Informationen dazu, wann und wie Treiber Adapterobjekte und AdapterControl-Routinen verwenden, finden Sie in diesem Abschnitt sowie unter Verwendung von Bus-Master DMA.

Aktivieren der DMA-Neuzuordnung für Gerätetreiber