DirectInput- und XUSB-Geräte
Der Treiber für die Xbox Common Controller-Klasse (XUSB) auf Windows implementiert die Kernelmodusschnittstelle für die XINPUT-DLL. Um eine gute Erfahrung für Ältere Titel zu bieten, die die DirectInput-API mit dem gemeinsamen Controllergerät verwenden, exportiert der Treiber auch eine Eingabegeräte-Klassenschnittstelle (HID), die von DirectInput verwendet wird. Wir haben die Zuordnung von XUSB zu HID basierend auf dem typischen Verhalten in einer Reihe von Gaminganwendungen für die ursprüngliche XINPUT-Version ausgewählt und die Zuordnung für neuere Untertypen aktualisiert. In diesem Thema wird die Zuordnung beschrieben.
Eingabegerät (Human Interface Device, HID)
DER HID-Standard ist ein Standard des USB-Ausschuss (Universal Serial Bus), der ursprünglich von Microsoft zum Generalisieren von Protokollen für Eingabegeräte vorgeschlagen wurde. Sie besteht aus einer Beschreibungssprache mit Bytecode und kann Gamepads, Mausen, Wilden, Drosselungs- und Drosselungssteuerelemente sowie Controller mit mehreren Achsen ausdrücken. Da dieser Standard so generalisiert ist, können Sie Schwierigkeiten beim Schreiben von Software haben, die Eingaben von beliebigen Geräten verwendet. Daher haben wir für die spielorientierte DirectInput-API eine spezifische Unterzuordnung von Typen entwickelt, um Hardwarehersteller zur Unterstützung durch ihre Treiber zu ermutigen.
Wichtig
Sie können auch über die RawInput-API auf HID-Eingabegeräte zugreifen und Eingabeberichte über die LOW-API verarbeiten, aber Vibrationsfeedback funktioniert nicht wie bei DirectInput.
Zuordnungen
Der XUSB-Treiber implementiert sowohl eine XUSB-Klassenschnittstelle als auch eine HID-Klassenschnittstelle für Geräte, um die Verwendung von XINPUT und DirectInput zu unterstützen. Diese Zuordnung basiert auf den XUSB-Untertypinformationen. Der Treiber implementiert vier verschiedene Gruppen von Zuordnungen.
| XUSB-Untertyp | Zuordnung |
|---|---|
| XINPUT _ DEVSUBTYPE _ GAMEPAD (Untertyp 1) | Gamepad |
| XINPUT _ DEVSUBTYPE _ WHEEL (Untertyp 2) | Wheel |
| XINPUT _ DEVSUBTYPE _ STICK _ (Untertyp 3) | Stick-/Pad-Pad "Stick" |
| XINPUT _ DEVSUBTYPE _ FLIGHT STICK _ (Untertyp 4) | Flight Stick |
| XINPUT _ DEVSUBTYPE _ PAD PAD _ (Untertyp 5) | Standard für jeden neuen Untertyp |
| XINPUT _ DEVSUBTYPE _ XI (Untertyp 6) | Gitarre |
| XINPUT _ DEVSUBTYPE _ ALTERNATIVE _ (Subtyp 7) | |
| XINPUT _ DEVSUBTYPE _ KITS _ (Untertyp 8) | |
| XINPUT _ DEVSUBTYPE _ GD _ (Untertyp 11) | |
| XINPUT _ DEVSUBTYPE _ pad _ (Untertyp 19) |
Hinweis
Die folgenden HID-Zuordnungen sind statisch. Dies bedeutet, dass die Zuordnung auch dann, wenn der Bericht zu den Gerätefunktionen angibt, dass eine bestimmte Schaltfläche oder Achse nicht unterstützt wird, sie enthält, aber immer einen Wert vom Status "Deaktiviert" oder "Mitte" anzeigt.
Gamepad
Dies ist die Standardzuordnung, die auf dem Standardmäßigen Xbox Common Controller-Gamepad ausgerichtet ist und als Gamepad HID-Verwendungstyp verfügbar gemacht wird.
| Control | HID-Verwendungsname | Seite "Nutzung" | Nutzungs-ID |
|---|---|---|---|
| Linker Stick | X, Y | 0x01 | 0x30, 0x31 |
| Rechter Stick | Rx, Ry | 0x01 | 0x33, 0x34 |
| Linker Trigger + Rechter Trigger | Z* | 0x01 | 0x32 |
| D-Pad Up, Down, Left, Right | Hat Switch | 0x01 | 0x39 |
| Ein | Schaltfläche 1 | 0x09 | 0x01 |
| B | Schaltfläche 2 | 0x09 | 0x02 |
| X | Schaltfläche 3 | 0x09 | 0x03 |
| J | Schaltfläche 4 | 0x09 | 0x04 |
| LB (linker Bumper) | Schaltfläche 5 | 0x09 | 0x05 |
| RB (rechtes Bumper) | Schaltfläche 6 | 0x09 | 0x06 |
| Zurück | Schaltfläche 7 | 0x09 | 0x07 |
| START | Schaltfläche 8 | 0x09 | 0x08 |
| LSB (Linke Stick-Taste) | Schaltfläche 9 | 0x09 | 0x09 |
| RSB (rechte Stick-Taste) | Schaltfläche 10 | 0x09 | 0x0A |
Hinweis
( ): Dies wird so kombiniert, dass Z das Zentrierungsverhalten auftut, das von den meisten Titeln für die Drehung erwartet wird. Dies bedeutet, dass es nicht möglich ist, alle möglichen Triggerkombinationswerte über * DirectInput und HID zu sehen.
Stick-/Pad-Pad "Stick"
Dies ist die Zuordnung, die um den Stick-Controller von Stick entworfen wurde und als Gamepad-HID-Verwendungstyp verfügbar gemacht wird. Das Pad "Pad"-Pad ist sehr ähnlich wie ein Stick stick, aber in einem kleineren Formfaktor. Diese Entwürfe ersetzen den analogen linken und rechten Trigger durch digitale Schaltflächen, die den minimalen und maximalen Achsenwert melden.
| Control | HID-Verwendungsname | Seite "Nutzung" | Nutzungs-ID |
|---|---|---|---|
| D-Pad Up, Down, Left, Right | Hat Switch | 0x01 | 0x39 |
| Ein | Schaltfläche 1 | 0x09 | 0x01 |
| B | Schaltfläche 2 | 0x09 | 0x02 |
| X | Schaltfläche 3 | 0x09 | 0x03 |
| J | Schaltfläche 4 | 0x09 | 0x04 |
| LB (linker Bumper) | Schaltfläche 5 | 0x09 | 0x05 |
| RB (rechtes Bumper) | Schaltfläche 6 | 0x09 | 0x06 |
| Zurück | Schaltfläche 7 | 0x09 | 0x07 |
| START | Schaltfläche 8 | 0x09 | 0x08 |
| Linker Trigger | Schaltfläche 9 | 0x09 | 0x09 |
| Rechter Trigger | Schaltfläche 10 | 0x09 | 0x0A |
Diese Geräte unterstützen möglicherweise zusätzliche Steuerelemente, aber diese werden von der HID-Zuordnung nicht verfügbar gemacht: Left Stick, Right Stick, LSB (linke Stick-Taste) und RSB (rechte Sticktaste).
Wheel
Diese Zuordnung ist um das Xbox Racing Wheel herum konzipiert und wird als Gamepad HID-Verwendungstyp verfügbar gemacht.
| Control | HID-Verwendungsname | Seite "Nutzung" | Nutzungs-ID |
|---|---|---|---|
| Wheel (Left Stick X) | X | 0x01 | 0x30 |
| Accelerator Accelerator (rechter Trigger) + Veralten (linker Trigger) | Z* | 0x01 | 0x32 |
| D-Pad Up, Down, Left, Right | Hat Switch | 0x01 | 0x39 |
| Ein | Schaltfläche 1 | 0x09 | 0x01 |
| B | Schaltfläche 2 | 0x09 | 0x02 |
| X | Schaltfläche 3 | 0x09 | 0x03 |
| J | Schaltfläche 4 | 0x09 | 0x04 |
| LB (linker Bumper) | Schaltfläche 5 | 0x09 | 0x05 |
| RB (rechtes Bumper) | Schaltfläche 6 | 0x09 | 0x06 |
| LSB (Linke Stick-Taste) | Schaltfläche 7 | 0x09 | 0x07 |
| RSB (rechte Stick-Taste) | Schaltfläche 8 | 0x09 | 0x08 |
| Zurück | Schaltfläche 9 | 0x09 | 0x09 |
| START | Schaltfläche 10 | 0x09 | 0x0A |
Hinweis
( ): Dies wird so kombiniert, dass Z das Zentrierungsverhalten auftut, das von den meisten Titeln für die Steuerungen für Diebeschleunigung und das Beschleunigersteuerelemente erwartet wird. Dies bedeutet, dass es nicht möglich ist, über DirectInput alle möglichen Werte der Kombinationskombination zu * sehen.
Flight Stick
Diese Zuordnung ist auf den Xbox Flight Stick ausgelegt und wird als Hid HID-Verwendungstyp verfügbar gemacht.
| Control | Verwendungsname | Seite "Nutzung" | Nutzungs-ID |
|---|---|---|---|
| Flight Stick (Left Stick) | X, Y | 0x01 | 0x30, 0x31 |
| POV Hat (Right Stick) | Rx, Ry | 0x01 | 0x33, 0x34 |
| Drosselung (rechter Trigger) | Z | 0x01 | 0x32 |
| Grober (linker Trigger) | Rz | 0x01 | 0x35 |
| D-Pad Up, Down, Left, Right | Hat Switch | 0x01 | 0x39 |
| Primäres Primäres (A) | Schaltfläche 1 | 0x09 | 0x01 |
| Sekundäres Replikat (B) | Schaltfläche 2 | 0x09 | 0x02 |
| X | Schaltfläche 3 | 0x09 | 0x03 |
| J | Schaltfläche 4 | 0x09 | 0x04 |
| LB (linker Bumper) | Schaltfläche 5 | 0x09 | 0x05 |
| RB (rechtes Bumper) | Schaltfläche 6 | 0x09 | 0x06 |
| Zurück | Schaltfläche 7 | 0x09 | 0x07 |
| START | Schaltfläche 8 | 0x09 | 0x08 |
| LSB (Linke Stick-Taste) | Schaltfläche 9 | 0x09 | 0x09 |
| RSB (rechte Stick-Taste) | Schaltfläche 10 | 0x09 | 0x0A |
Hinweis
Dies basiert auf dem endgültigen Flight Stick-Design. Da sich dies von frühen Flight Stick-Definitionen unterscheidet, verfügen viele Geräte über einen Modusschalter, der das alte und das neue Modell unterstützt. Bei dieser Zuordnung wird das neue Modell angenommen.