Share via


IGameInput::EnableOemDeviceSupport (v0)

Note

This function is not yet implemented.

Specifies a plug-and-play device that the caller wants like the GameInput API to expose in its input stream.

Syntax

HRESULT EnableOemDeviceSupport(  
         uint16_t vendorId,  
         uint16_t productId,  
         uint8_t interfaceNumber,  
         uint8_t collectionNumber  
)  

Parameters

vendorId   _In_
Type: uint16_t

Vendor ID (VID) used to identify the OEM device.

productId   _In_
Type: uint16_t

Product ID (PID) used to identify the OEM device.

interfaceNumber   _In_
Type: uint8_t

USB interface number (if applicable).

collectionNumber   _In_
Type: uint8_t

HID collection number (as assigned by HIDCLASS.sys, if applicable).

Return value

Type: HRESULT

Returns E_NOTIMPL.

Remarks

Enabling a device with this method allows raw access to the device, such as input/output controls (IOCTLs). The OEM consumes the raw input reports from such devices and exposes the underlying data via its own API surface.

Devices are identified by a combination of their VID/PID, USB interface number (if applicable), and HID collection number (as assigned by HIDCLASS.sys) if applicable. This is a stable identification method that is tied to how the OEM device's firmware presents itself to the system that they control.

Devices exposed via the EnableOemDeviceSupport method are visible only to the applications that requested them. Support for an OEM device remains enabled for a given process until all references to the IGameInput interface (and any other outstanding GameInput interfaces) are released by that process.

An application can enable support for up to 1024 different OEM devices. Exceeding this limit causes a failure HRESULT to be returned. This method returns quickly and is safe to call from time-sensitive contexts.

Requirements

Header: GameInput.h

Library: xgameruntime.lib

Supported platforms: Windows, Xbox One family consoles and Xbox Series consoles

See also

Advanced GameInput topics
Overview of GameInput
IGameInput