Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.