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.
In diesem Artikel werden Plug-and-Play-Unterstützung für Geräte beschrieben, die HID über den I2C-Transport unterstützen.
Treiberladevorgang
Windows lädt den HID I2C-Klassentreiber basierend auf einer kompatiblen Id-Übereinstimmung zwischen einem Hardwarebezeichner und dem INF. Die erweiterte Konfiguration und Power Interface (ACPI) generiert den Bezeichner. Der Hardwarebezeichner wird für den I2C-Geräteknoten in ACPI generiert. Alle HID I2C-kompatiblen Geräte müssen zusätzlich zu einem eindeutigen Hardwarebezeichner den Kompatibilitätsbezeichner verfügbar machen.
Die ACPI 5.0-Spezifikation enthält Unterstützung für HID-Klassengeräte. Die ACPI-Definitionen für HID I2C sind wie folgt.
Feld | Wert | ACPI-Objekt | Format | Kommentare |
---|---|---|---|---|
Kompatible ID | PNP0C50 | _CID | Zeichenfolge im Format von ACPI0C50 oder PNP0C50 | CompatibleID |
Hardware-ID | Herstellerspezifisch | _HID | Zeichenfolge im Format von VVVVddddd (z. B. NVDA0001) | VendorID + DeviceID |
Subsystem | Herstellerspezifisch | _SUB | Zeichenfolge im Format von VVVVsss (z. B. INTL1234) | SubVendorID + SubSystemID |
Hardwarerevision | Herstellerspezifisch | _HRV | 0xRRRRR (Zwei-Byte-Revision) | RevisionID |
Aktuelle Ressourceneinstellungen | Herstellerspezifisch | _CRS | Bytedatenstrom | Muss I2CSerialBus und GPIO_INT für I2C-Controller und GPIO-Unterbrechungen enthalten. |
Gerätespezifische Methode | GUID {3CDFF6F7-4267-4555-AD05-B30A3D8938DE} | _DSM | Paket | Definiert eine Struktur, die die HID-Beschreibungsadresse enthält. |
Jedes HID I2C-Gerät muss die folgenden Pflichtfelder bereitstellen:
- Kompatible ID
- Hardware-ID
- Hardwarerevision
- Aktuelle Ressourceneinstellungen
- Gerätespezifische Methode
Weitere Informationen finden Sie in der Advanced Configuration and Power Interface Specification Version 5.0.
Die folgenden Hardware-IDs und kompatiblen IDs stellen ein Beispiel für ein zufälliges HID I2C-Gerät bereit. Diese Details basieren auf einem Beispielgerät, das sich als HID mit einer Sammlung auf oberster Ebene der Klasse "herstellerspezifisch" meldet.
Advanced Configuration and Power Interface (ACPI) generiert die folgenden Hardware-IDs und kompatiblen IDs, um den HID I2C-Transporttreiber zu laden:
Hardwarebezeichner: Kompatible Bezeichner
ACPI\Vid_xxxx&Pid_yyyy&Rev_zzzz;: ACPI\PNP0C50
ACPI\Vid_xxxxPid_yyyy;:
ACPI\xxxxyyy;:
Im vorherigen Beispiel wurde die Hardware-ID mithilfe der Werte generiert, die aus der _HID ACPI-Methode für das Beispielgerät extrahiert wurden. Die kompatible ID wird mithilfe der Werte generiert, die aus der _CID ACPI-Methode für das Beispielgerät extrahiert wurden. Die kompatible ID für eine HID über I2C muss immer für Version 1.0 PNP0C50 werden.
Hinweis Wenn Sie einen INF angeben, sollten Sie nur die Hardwarebezeichner in der linken Spalte der vorherigen Tabelle verwenden. (Verwenden Sie nicht den kompatiblen Bezeichner in der rechten Spalte.)
Die Hardware-ID für den HID-Clientgeräteknoten, der von der komponente HIDClass.sys generiert wird, lautet wie folgt:
Hardwarebezeichner: Kompatibler Bezeichner
HID\VEN_MSFT&DEV_0010&REV_0002&Col01;: N/A
-HID\VEN_MSFT&DEV_0010&Col01 HID\MSFT0010&Col01;: N/A
-HID\*MSFT0010Col01: N/A
-HID_DEVICE_UP:FF00_U:0001;: N/A
-HID_DEVICE: N/A
HIDClass.sys generiert die Hardware-ID und ist für alle Transporte identisch. Dieser Bezeichner basiert auf Werten, die an HIDClass.sys von HIDI2C.sys (extrahiert aus ACPI) übergeben werden.
Geräteenumerationssequenz
Sobald ein HID I2C-Gerätetreiber (HIDI2C.sys) geladen wurde, beginnt er mit dem Gerät über den I2C-Bus zu kommunizieren. Der erste Vorgang, den der Treiber ausführt, ist die Geräteaufzählungssequenz.
Die folgende Liste gibt die Enumerationssequenz an. Die Reihenfolge dieser Liste kann sich in zukünftigen Versionen von Windows ändern.
Rufen Sie DEN ACPI Source Language (ASL) -Code für HID I2C-GERÄT aus dem System-BIOS ab.
HiD-Deskriptor vom Gerät abrufen.
- HID-Beschreibungsadresse schreiben
- HID-Deskriptor lesen
Ausgeben eines SET_POWER auf das Gerät.
- Befehl SET_POWER schreiben
Ausgeben eines RESET (Vom Host initiiertes Zurücksetzen) auf das Gerät.
- Befehl 'ZURÜCKSETZEN schreiben'
- Device asserts GPIO interrupt
- Lesewert (0x00 0x00) aus dem Eingaberegister
Abrufen des Berichtsdeskriptors vom Gerät.
- Schreibberichtdeskriptoradresse
- Berichtsdeskriptor lesen
Wenn der HOST keine der Schritte 1-5 mit dem GERÄT erfolgreich abgeschlossen hat, kann der HIDI2C-Treiber mit dem Fehlerwert Code 10 geladen werden. Es gibt keine Wiederholungslogik, die in einen dieser Befehle integriert ist.
Hinweis: Die Schritte 4 und 5 können parallel ausgeführt werden, um die Zeit auf I2C zu optimieren. Da Berichtsdeskriptoren (a) statisch und (b) lang sind, kann Windows 8 eine Anforderung für 5 ausgeben, während sie auf eine Antwort vom Gerät auf 4 wartet.
Unterstützte HID I2C-Befehle
HIDI2C.SYS Treiber unterstützt die folgenden Befehle:
Get-Help | Wie diese verwendet wird | Wann sie verwendet wird |
---|---|---|
Zurücksetzen | Windows unterstützt die vom Host initiierte Zurücksetzung. | Windows gibt diesen Befehl in den folgenden Szenarien aus – Geräteinitialisierung – Deaktivieren/Aktivieren – Deinstallieren/erneutes Installieren |
Abrufen/Set_Report | Windows unterstützt die Befehle "Abrufen/Set_Report". | Windows gibt diesen Befehl in den folgenden Szenarien aus – wenn ein HID-Clienttreiber eine Anforderung zum Abrufen/Festlegen eines Featureberichts ausgibt - wenn ein HID-Clienttreiber einen synchronen Eingabe-/Ausgabebericht ausgibt |
Set_Power | Windows unterstützt den Befehl Set_Power | Windows gibt diesen Befehl in den folgenden Szenarien aus – wenn das System in einen Energiesparmodus S3 / angeschlossenen Standbyzustand wechselt – wenn das System ausgeschaltet wird. |