Freigeben über


Der IEEE 1394-Treiberstapel

Das folgende Diagramm veranschaulicht den IEEE 1394-Treiberstapel mit dem neuen Bustreiber 1394 und den von Microsoft unterstützten 1394-Clienttreibern.

Diagramm, das den Ieee 1394-Treiberstapel veranschaulicht.

Ein Clienttreiber für ein Gerät, das eine Verbindung mit dem IEEE 1394-Bustreiber herstellt, befindet sich auf dem IEEE 1394-Treiberstapel. Der Bustreiber bietet eine hardwareunabhängige Schnittstelle zum IEEE 1394-Bus. Der Gerätetreiber kommuniziert mit dem Gerät, indem er IRPs sendet, die vom IEEE 1394-Bustreiber verarbeitet werden. Vor Windows 7 war der Bustreiber eine Kombination aus einem Porttreiber (1394bus.sys) und einem primären Miniporttreiber für den Hostcontroller der Hauptplatine (ochi1394.sys). In Windows 7 und höheren Versionen werden die Legacy-Port-/Miniportbustreiber durch 1394ohci.sys ersetzt, einem monolithischen IEEE 1394-Bustreiber, der mithilfe des Kernelmodustreiberframeworks (KMDF) implementiert wird. Der 1394ohci.sys Bustreiber ist vollständig abwärtskompatibel mit den älteren 1394-Bustreibern. Weitere Informationen zu einigen bekannten Verhaltensunterschieden zwischen dem neuen Bustreiber und den älteren Bustreibern 1394 finden Sie unter IEEE 1394 Bus Driver in Windows 7.

Die folgende Abbildung zeigt die Beziehung zwischen dem Legacy und den neuen 1394-Bustreibern.

Diagramm, das die Beziehung zwischen dem Legacy und den neuen 1394-Bustreibern zeigt.

Um Befehle an Geräte auszugeben, die mit dem Bus verbunden sind, geben Treiber die IRP_MJ_DEVICE_CONTROL IRP mit steuerbarem Code IOCTL_1394_CLASS aus. Der Treiber packt die Parameter in einem IEEE 1394-I/O-Anforderungsblock (IRB) und übergibt einen Zeiger an ihn im Parameters.Others.Argument1-Member des IRP. Das FunctionNumber-Element des IRB bestimmt den Typ des Vorgangs, und das Element u beschreibt den Vorgang. Der Bustreiber verwendet den IOCTL_1394_CLASS IRP, um sowohl dem Bus als auch dem Hostcontroller eine Schnittstelle zu präsentieren.

Die IRB-Struktur enthält Parameter, die für jede Busanforderung und anforderungsspezifische Parameter gelten. Das u-Element des IRB enthält die anforderungsspezifischen Parameter in einer Union von Datenstrukturen, eins pro Anforderungstyp.

Während des normalen Betriebs empfangen Treiber gewöhnliche E/A-Anforderungen (z. B. IRP_MJ_READ), konvertieren sie in den entsprechenden IEEE 1394-Vorgang und senden diesen Vorgang über IOCTL_1394_CLASS an das Gerät.

IEEE 1394 BusTreiber in Windows 7