Freigeben über


DirectInput- und XUSB-Geräte

Der Treiber für XUSB unter Windows implementiert die Kernelmodusschnittstelle für die XINPUT-DLL. Um ältere Titel mit der DirectInput--API mit dem allgemeinen Controllergerät zu nutzen, exportiert der Treiber auch eine HID-Klassenschnittstelle (Human Interface Device), die von DirectInput abgerufen wird. Wir haben die Zuordnung von XUSB zu HID basierend auf dem typischen Verhalten in einer Reihe von Gaming-Anwendungen für die ursprüngliche XINPUT-Version ausgewählt und die Zuordnung für neuere Untertypen aktualisiert. In diesem Thema wird die Zuordnung beschrieben.

Human Interface Device (HID)

HID-Standard ist ein Standard aus dem USB-Ausschuss (Universal Serial Bus), der ursprünglich von Microsoft vorgeschlagen wurde, Protokolle für Eingabegeräte zu generalisieren. Es besteht aus einer Byte-Code-Beschreibungssprache und kann Gamepads, Mäuse, Joysticks, Drosselungs- und Rudersteuerungen und Multiachsencontroller ausdrücken. Da dieser Standard so generalisiert ist, können Sie Probleme beim Schreiben von Software haben, die Eingaben von beliebigen Geräten verbraucht. Daher haben wir für die spieleorientierte DirectInput--API eine spezifische Unterzuordnung von Typen entwickelt, um Hardwarehersteller zur Unterstützung durch ihre Treiber zu ermutigen.

Wichtig

Sie können auch über RawInput-API- auf HID-Eingabegeräte zugreifen und Eingabeberichte über HID-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 sowohl XINPUT als auch DirectInput Verwendung zu unterstützen. Diese Zuordnung basiert auf den XUSB-Untertypinformationen. Der Treiber implementiert vier verschiedene Gruppen von Zuordnungen.

XUSB-Untertyp Abbildung
XINPUT_DEVSUBTYPE_GAMEPAD (Untertyp 1) Gamepad
XINPUT_DEVSUBTYPE_WHEEL (Untertyp 2) Rad
XINPUT_DEVSUBTYPE_ARCADE_STICK (Untertyp 3) Arcade-Joystick/Arcade-Pad
XINPUT_DEVSUBTYPE_FLIGHT_STICK (Untertyp 4) Flugstick
XINPUT_DEVSUBTYPE_DANCE_PAD (Untertyp 5) Standard für jeden neuen Untertyp
XINPUT_DEVSUBTYPE_GUITAR (Untertyp 6) Gitarre
XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (Untertyp 7)
XINPUT_DEVSUBTYPE_DRUM_KIT (Untertyp 8)
XINPUT_DEVSUBTYPE_GUITAR_BASS (Untertyp 11)
XINPUT_DEVSUBTYPE_ARCADE_PAD (Untertyp 19)

Anmerkung

Die folgenden HID-Zuordnungen sind statisch. Dies bedeutet, dass die Zuordnung auch dann, wenn der Bericht über Gerätefunktionen darauf hinweist, dass eine bestimmte Schaltfläche oder Achse nicht unterstützt wird, die Zuordnung weiterhin enthält, aber immer einen Off-State- oder Center-Wert meldet.

Gamepad

Dies ist die Standardzuordnung, die auf einem Standard-Gamepad ausgelegt ist und als Gamepad- HID-Verwendungstyp verfügbar gemacht wird.

Steuerung HID-Verwendungsname Verwendungsseite Verwendungs-ID
Linker Stick X, Y 0x01 0x30, 0x31
Rechtsknüppel Rx, Ry 0x01 0x33, 0x34
Linker Trigger + Rechter Trigger Z* 0x01 0x32
D-Pad nach oben, unten, links, rechts Hat Switch 0x01 0x39
Ein Schaltfläche 1 0x09 0x01
B Schaltfläche 2 0x09 0x02
X Schaltfläche 3 0x09 0x03
Y Schaltfläche 4 0x09 0x04
LB (linker Bumper) Schaltfläche 5 0x09 0x05
RSP (rechter Bumper) Schaltfläche 6 0x09 0x06
ZURÜCK Schaltfläche 7 0x09 0x07
ANFANGEN Schaltfläche 8 0x09 0x08
LSB (Linke Sticktaste) Schaltfläche 9 0x09 0x09
RSB (Rechte Sticktaste) Schaltfläche 10 0x09 0x0A

Anmerkung

(*): Dies wird kombiniert, sodass Z das Zentrierungsverhalten aufweist, das von den meisten Titeln für drehung erwartet wird; Dies bedeutet, dass es nicht möglich ist, alle möglichen Triggerkombinationswerte über DirectInput- und HID anzuzeigen.

Arcade-Joystick/Arcade-Pad

Dies ist die Zuordnung für den Arcade-Stick-Controller und wird als Gamepad- HID-Verwendungstyp verfügbar gemacht. Das Arcade-Pad ähnelt einem Arcade-Stick, aber in einem kleineren Formfaktor. Diese Designs ersetzen den analogen Linken Trigger und den rechten Trigger durch digitale Schaltflächen, die den Minimal- und Maximalachsenwert melden.

Steuerung HID-Verwendungsname Verwendungsseite Verwendungs-ID
D-Pad nach oben, unten, links, rechts Hat Switch 0x01 0x39
Ein Schaltfläche 1 0x09 0x01
B Schaltfläche 2 0x09 0x02
X Schaltfläche 3 0x09 0x03
Y Schaltfläche 4 0x09 0x04
LB (linker Bumper) Schaltfläche 5 0x09 0x05
RSP (rechter Bumper) Schaltfläche 6 0x09 0x06
ZURÜCK Schaltfläche 7 0x09 0x07
ANFANGEN Schaltfläche 8 0x09 0x08
Linker Trigger Schaltfläche 9 0x09 0x09
Rechter Auslöser Schaltfläche 10 0x09 0x0A

Diese Geräte unterstützen möglicherweise oder nicht zusätzliche Steuerelemente, aber diese werden nicht durch die HID-Zuordnung verfügbar gemacht: Linker Stick, Rechter Stick, LSB (Linke Sticktaste) und RSB (Rechte Sticktaste).

Rad

Diese Zuordnung ist rund um ein Rennlenkrad konzipiert und wird als Gamepad- HID-Verwendungstyp verfügbar gemacht.

Steuerung HID-Verwendungsname Verwendungsseite Verwendungs-ID
Rad (Linker Stick X) X 0x01 0x30
Beschleunigerpedal (Rechter Auslöser) + Bremspedal (linker Trigger) Z* 0x01 0x32
D-Pad nach oben, unten, links, rechts Hat Switch 0x01 0x39
Ein Schaltfläche 1 0x09 0x01
B Schaltfläche 2 0x09 0x02
X Schaltfläche 3 0x09 0x03
Y Schaltfläche 4 0x09 0x04
LB (linker Bumper) Schaltfläche 5 0x09 0x05
RSP (rechter Bumper) Schaltfläche 6 0x09 0x06
LSB (Linke Sticktaste) Schaltfläche 7 0x09 0x07
RSB (Rechte Sticktaste) Schaltfläche 8 0x09 0x08
ZURÜCK Schaltfläche 9 0x09 0x09
ANFANGEN Schaltfläche 10 0x09 0x0A

Anmerkung

(*): Dies wird kombiniert, sodass Z das zentrierende Verhalten aufweist, das von den meisten Titeln für die Brems- und Beschleunigersteuerung erwartet wird; Dies bedeutet, dass es nicht möglich ist, alle möglichen Pedalkombinationswerte durch DirectInputzu sehen.

Flugstick

Diese Zuordnung ist rund um einen Flugstick ausgelegt und wird als Joystick HID-Verwendungstyp verfügbar gemacht.

Steuerung Verwendungsname Verwendungsseite Verwendungs-ID
Flugstick (Linker Stick) X, Y 0x01 0x30, 0x31
POV-Hut (Right Stick) Rx, Ry 0x01 0x33, 0x34
Drosselung (Rechter Auslöser) Z 0x01 0x32
Rudder (Linker Trigger) Rz 0x01 0x35
D-Pad nach oben, unten, links, rechts Hat Switch 0x01 0x39
Primärwaffe (A) Schaltfläche 1 0x09 0x01
Sekundärwaffe (B) Schaltfläche 2 0x09 0x02
X Schaltfläche 3 0x09 0x03
Y Schaltfläche 4 0x09 0x04
LB (linker Bumper) Schaltfläche 5 0x09 0x05
RSP (rechter Bumper) Schaltfläche 6 0x09 0x06
ZURÜCK Schaltfläche 7 0x09 0x07
ANFANGEN Schaltfläche 8 0x09 0x08
LSB (Linke Sticktaste) Schaltfläche 9 0x09 0x09
RSB (Rechte Sticktaste) Schaltfläche 10 0x09 0x0A

Anmerkung

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 vorausgesetzt.