共用方式為


DirectInput 和 XUSB 裝置

Windows 上的 XUSB 驅動程式會實作 XINPUT DLL 的核心模式介面。 為了為使用 DirectInput API 搭配通用控制器裝置的舊版標題提供良好的體驗,驅動程式也會導出 DirectInput 所挑選的 Human Interface Device (HID) 類別介面。 我們根據原始 XINPUT 版本的一組遊戲應用程式中的一般行為,選擇 XUSB 到 HID 的對應,並更新了較新的子類型的對應。 本主題描述對應。

人類介面裝置 (HID)

HID 標準是 Microsoft 最初提議的通用序列總線 (USB) 委員會的標準,可將輸入裝置的通訊協定一般化。 它是由位元組代碼描述語言所組成,而且可以表達遊戲板、滑鼠、遊戲桿、節流和 rudder 控制件,以及多軸控制器。 由於此標準已一般化,因此您可能無法撰寫會取用任意裝置輸入的軟體。 因此,針對以遊戲為中心的 DirectInput API,我們開發了類型的特定子對應,以鼓勵硬體製造商透過驅動程式提供支援。

重要

您也可以透過RawInput API存取 HID 輸入裝置,並透過低層級 HID API 處理輸入報告,但震動回饋無法與 DirectInput 一樣運作。

對應

XUSB 驅動程式會針對裝置實作 XUSB 類別介面和 HID 類別介面,以支援 XINPUT 和 DirectInput 使用方式。 此對應是以 XUSB 子類型資訊為基礎。 驅動程式會實作四個不同的對應群組。

XUSB 子類型 對應
XINPUT_DEVSUBTYPE_GAMEPAD (子型態 1) 遊戲台
XINPUT_DEVSUBTYPE_WHEEL (子型態 2) Wheel
XINPUT_DEVSUBTYPE_ARCADE_STICK (子型態 3) 電動遊戲桿/電動遊戲板
XINPUT_DEVSUBTYPE_FLIGHT_STICK (子類型 4) 飛行杆
XINPUT_DEVSUBTYPE_DANCE_PAD (子型態 5) 任何新子類型的預設值
XINPUT_DEVSUBTYPE_GUITAR (子型態 6) 吉他
XINPUT_DEVSUBTYPE_GUITAR_ALTERNATE (子類型 7)
XINPUT_DEVSUBTYPE_DRUM_KIT (子型態 8)
XINPUT_DEVSUBTYPE_GUITAR_BASS (子型態 11)
XINPUT_DEVSUBTYPE_ARCADE_PAD (子型態 19)

注意

下列 HID 對應是靜態的。 這表示即使裝置功能報告指出不支援特定按鈕或座標軸,對應仍會包含它,但一律會報告關閉狀態或中心值。

遊戲台

這是預設的對應,且是以標準遊戲板設計,並公開為 遊戲板 HID 使用類型。

控制 HID 使用方式名稱 使用方式頁面 使用量標識碼
左棒 X、Y 0x01 0x30,0x31
右棒 Rx、Ry 0x01 0x33,0x34
左觸發程式 + 右觸發程式 Z* 0x01 0x32
D-Pad Up、Down、Left、Right Hat Switch 0x01 0x39
A 按鈕 1 0x09 0x01
B 按鈕 2 0x09 0x02
X 按鈕 3 0x09 0x03
Y 按鈕 4 0x09 0x04
LB (左保險杠) 按鈕 5 0x09 0x05
RB (右保險杠) 按鈕 6 0x09 0x06
BACK 按鈕 7 0x09 0x07
START 按鈕8 0x09 0x08
LSB (左棒按鈕) 按鈕 9 0x09 0x09
RSB (右棒按鈕) 按鈕 10 0x09 0x0A

注意

*: 這是結合的,讓 Z 顯示大多數旋轉標題所預期的中心行為:這表示無法透過 DirectInput 和 HID 查看所有可能的觸發程式組合值。

電動遊戲桿/電動遊戲板

這是圍繞電動遊戲桿控制器設計的對應,並公開為 遊戲板 HID 使用類型。 Arcade Pad 非常類似於電動遊戲桿,但尺寸較小。 這些設計會將類比左觸發程式和右觸發程式取代為數字按鈕,以報告最小和最大軸值的數字按鈕。

控制 HID 使用方式名稱 使用方式頁面 使用量標識碼
D-Pad Up、Down、Left、Right Hat Switch 0x01 0x39
A 按鈕 1 0x09 0x01
B 按鈕 2 0x09 0x02
X 按鈕 3 0x09 0x03
Y 按鈕 4 0x09 0x04
LB (左保險杠) 按鈕 5 0x09 0x05
RB (右保險杠) 按鈕 6 0x09 0x06
BACK 按鈕 7 0x09 0x07
START 按鈕8 0x09 0x08
左觸發程式 按鈕 9 0x09 0x09
右觸發程式 按鈕 10 0x09 0x0A

這些裝置可能或可能不支援其他控件,但這些控件不會由 HID 對應公開:左遊戲桿、右遊戲桿、LSB(左桿按鈕)和 RSB(右遊戲桿按鈕)。

Wheel

這個對應是以賽車方向盤設計,並公開為 遊戲板 HID 使用類型。

控制 HID 使用方式名稱 使用方式頁面 使用量標識碼
滾輪 (左棒 X) X 0x01 0x30
加速器踏板 (右觸發程式) + 剎車踏板 (左觸發程式) Z* 0x01 0x32
D-Pad Up、Down、Left、Right Hat Switch 0x01 0x39
A 按鈕 1 0x09 0x01
B 按鈕 2 0x09 0x02
X 按鈕 3 0x09 0x03
Y 按鈕 4 0x09 0x04
LB (左保險杠) 按鈕 5 0x09 0x05
RB (右保險杠) 按鈕 6 0x09 0x06
LSB (左棒按鈕) 按鈕 7 0x09 0x07
RSB (右棒按鈕) 按鈕8 0x09 0x08
BACK 按鈕 9 0x09 0x09
START 按鈕 10 0x09 0x0A

注意

•:這結合在一起,讓 Z 展現大多數剎車和加速器控件標題所預期的中心行為:這表示無法透過 DirectInput 查看所有可能的踏板組合值。

飛行杆

這個對應是圍繞飛行桿所設計,並公開為 遊戲桿 HID 使用類型。

控制 使用量名稱 使用方式頁面 使用量標識碼
飛行棒 (左棒) X、Y 0x01 0x30,0x31
POV 帽子 (右棒) Rx、Ry 0x01 0x33,0x34
節流(右觸發程式) Z 0x01 0x32
陸克(左觸發程式) Rz 0x01 0x35
D-Pad Up、Down、Left、Right Hat Switch 0x01 0x39
主要武器(A) 按鈕 1 0x09 0x01
次要武器 (B) 按鈕 2 0x09 0x02
X 按鈕 3 0x09 0x03
Y 按鈕 4 0x09 0x04
LB (左保險杠) 按鈕 5 0x09 0x05
RB (右保險杠) 按鈕 6 0x09 0x06
BACK 按鈕 7 0x09 0x07
START 按鈕8 0x09 0x08
LSB (左棒按鈕) 按鈕 9 0x09 0x09
RSB (右棒按鈕) 按鈕 10 0x09 0x0A

注意

這是基於最終的飛行棒設計。 由於這與早期正式發行前小眾測試桿定義不同,許多裝置都有支援舊與新模型的模式切換。 此對應假設有新的模型。