Share via


General-Purpose E/A-Treiber (GPIO) – Entwurfshandbuch

In diesem Abschnitt wird beschrieben, wie Sie einen Treiber für ein GPIO-Controllergerät (General Purpose E/O) schreiben. Ein GPIO-Controller konfiguriert GPIO-Pins, um Daten-E/A-Vorgänge mit niedriger Geschwindigkeit auszuführen, als Geräteauswahl zu fungieren und Unterbrechungsanforderungen zu empfangen. Ab Windows 8 vereinfacht die GPIO-Frameworkerweiterung (GpioClx) das Schreiben eines Treibers für einen GPIO-Controller. Darüber hinaus bietet GpioClx eine einheitliche E/A-Anforderungsschnittstelle für Treiber von Peripheriegeräten, die mit Geräten kommunizieren, die eine Verbindung mit GPIO-Pins auf einem Controller herstellen.

In diesem Abschnitt

Thema Beschreibung

Übersicht über die GPIO-Treiberunterstützung

Ab Windows 8 vereinfacht die GPIO-Frameworkerweiterung (GpioClx) das Schreiben eines Treibers für ein GPIO-Controllergerät. Darüber hinaus bietet GpioClx Treiberunterstützung für Peripheriegeräte, die eine Verbindung mit GPIO-Pins herstellen. GpioClx, eine vom System bereitgestellte Erweiterung des Kernelmodustreiberframeworks (KMDF), führt Verarbeitungsaufgaben aus, die für Mitglieder der GPIO-Geräteklasse gemeinsam sind.

GpioClx-E/A- und Interruptschnittstellen

In der Regel sind die Clients eines GPIO-Controllers Treiber für Peripheriegeräte, die eine Verbindung mit GPIO-Pins herstellen. Diese Treiber verwenden GPIO-Pins als Datenkanäle mit geringer Bandbreite, Geräteauswahlausgaben und Interruptanforderungseingaben. Treiber für Peripheriegeräte öffnen logische Verbindungen mit GPIO-Pins, die als Dateneingaben oder -ausgaben konfiguriert sind. Sie verwenden diese Verbindungen, um E/A-Anforderungen an diese Pins zu senden. Darüber hinaus können Treiber von Peripheriegeräten ihre Interruptdienstroutinen logisch mit GPIO-Pins verbinden, die als Interruptanforderungseingaben konfiguriert sind.

GPIO-basierte Hardwareressourcen

Ab Windows 8 stehen die GPIO-Pins (Universelle E/A), die von einem GPIO-Controllertreiber gesteuert werden, anderen Treibern als vom System verwaltete Hardwareressourcen zur Verfügung. GPIO-E/A-Pins, bei denen es sich um Pins handelt, die als Dateneingaben oder Datenausgaben konfiguriert sind, sind als neuer Windows-Ressourcentyp, GPIO-E/A-Ressourcen, verfügbar. Darüber hinaus sind GPIO-Interruptpins, bei denen es sich um Pins handelt, die als Interruptanforderungseingaben konfiguriert sind, als normale Windows-Interruptressourcen verfügbar.

GPIO-Interrupts

Einige GPIO-Controllergeräte (General Purpose E/O) können ihre GPIO-Pins so konfigurieren, dass sie als Interruptanforderungseingaben funktionieren. Diese Interruptanforderungseingaben werden von Peripheriegeräten gesteuert, die physisch mit den GPIO-Pins verbunden sind. Die Treiber für diese GPIO-Controller können Interruptanforderungen für einzelne GPIO-Pins aktivieren, deaktivieren, maskieren, die Maskierung aufheben und löschen.

GpioClx DDI

Der GPIO-Controllertreiber (General Purpose E/O) kommuniziert über die GpioClx-Gerätetreiberschnittstelle (DDI) mit der GPIO-Frameworkerweiterung (GpioClx). Dieser DDI ist in der Gpioclx.h-Headerdatei definiert und in der GPIO-Treiberreferenz (General-Purpose E/O) beschrieben. Im Rahmen dieses DDI implementiert GpioClx mehrere Treiberunterstützungsmethoden, die vom GPIO-Controllertreiber aufgerufen werden. Dieser Treiber implementiert eine Reihe von Ereignisrückruffunktionen, die von GpioClx aufgerufen werden. GpioClx verwendet diese Rückrufe, um Interruptanforderungen von GPIO-Pins zu verwalten, die als Interrupteingaben konfiguriert sind, und um Daten an oder von GPIO-Pins zu übertragen, die als Dateneingaben und -ausgaben konfiguriert sind.