APCI-3600
Aufgabe:
Falls Sie Visual Basic 5.0/6.0 verwenden:
- ist nur der asynchrone Mode ist verfügbar.
WICHTIG!
i
Windows 32-Bit Information
Für Windows NT/2000/XP und Windows 98 sind 4 Ringe
(Ring 0 bis Ring 3) verfügbar.
- Die Anwendung des Benutzers arbeitet in Ring 3. Dieser Ring ermöglicht keinen
Hardware-Zugriff.
- VXD- und SYS-Treiber arbeiten in Ring 0 und ermöglichen Zugriff auf
Hardware.
- Ring 0 hat keinen direkten Zugriff zu der globalen Variablen von Ring 3. Er
muss als Gemeinschaftsspeicher verwendet werden.
- Ring 0 und Ring 3 haben einen Zeiger, der auf diesen Gemeinschaftsspeicher
zeigt. Die beiden Zeiger sind nicht unter derselben Adresse konfiguriert. Die
Funktion muss für jede APCI-3600, für die ein Interrupt aktiviert werden soll,
aufgerufen werden. Es wird eine Benutzer-Interrupt-Funktion auf allen Karten,
auf denen ein Interrupt ausgelöst werden soll, installiert.
Erster Aufruf (erste Karte):
- die Benutzer-Interruptroutine wird installiert
- die Interrupts werden aktiviert
- der Benutzer-Gemeinschaftsspeicher wurde zugeordnet, wenn Folgendes
ausgewählt wurde: PCI3600_SYNCHROUNOUS_MODE
Falls Sie mehrere APCI-3600 betreiben, die auf Interrupts reagieren sollen, rufen
Sie die Funktion immer auf, wenn Sie die APCI-3600 benutzen.
Die Variable v_FunctionName ist nur beim ersten Aufruf von Bedeutung.
Vom zweiten Funktionsaufruf an (nächste Karte)sind die Interrupts aktiviert
Interrupt
Die Benutzer-Interruptroutine wird vom System aufgerufen, wenn ein Interrupt
erzeugt worden ist. Fall mehrere Karten betrieben werden und wenn diese auf
Interrupts reagieren sollen, gibt die Variable dw_BoardHandle die
Identifikationsnummer (Handle) der Karte zurück, die den Interrupt erzeugt hat.
Die Benutzer-Interruptroutine kann aufgerufen werden:
d) direkt vom Treiber der Interruptroutine (synchroner Mode). Der Code der
Benutzer-Interrupttoutine arbeitet direct in Ring 0.
e) vom Interrupt-Thread des Treibers (asynchroner Mode). Ein Ereignis wird
ausgelöst and der Interrupt-Thread ruft die Benutzer-Interruptroutine auf.
Der Code der Benutzer-Interruptroutine arbeitet in Ring 3.
Der Interrupt-Thread des Treibers hat im System höchste Priorität (31)
verwendet, wenn Sie Folgendes gewählt
haben:
PCI3600_SYNCHRONOUS_MODE
Software