> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IGameInputDevice::ExecuteRawDeviceIoControl

> IGameInputDevice::ExecuteRawDeviceIoControl

# IGameInputDevice::ExecuteRawDeviceIoControl

<Warning>**Deprecated.** This method was removed in GameInput v1 and is not available in the current API.</Warning>

Sends an I/O control code directly to a raw HID device.

## Syntax

```cpp theme={null}
HRESULT ExecuteRawDeviceIoControl(
    uint32_t controlCode,
    size_t inputBufferSize,
    const void* inputBuffer,
    size_t outputBufferSize,
    void* outputBuffer,
    size_t* outputSizeWritten
);
```

### Parameters

*controlCode*   \_In\_\
Type: uint32\_t

The I/O control code to send.

*inputBufferSize*   \_In\_\
Type: size\_t

The size, in bytes, of the `inputBuffer`.

*inputBuffer*   \_In\_reads\_bytes\_opt\_(inputBufferSize)\_\
Type: const void\*

A pointer to the input data buffer.

*outputBufferSize*   \_In\_\
Type: size\_t

The size, in bytes, of the `outputBuffer`.

*outputBuffer*   \_Out\_writes\_bytes\_opt\_(outputBufferSize)\_\
Type: void\*

A pointer to the output data buffer.

*outputSizeWritten*   \_Out\_opt\_\
Type: size\_t\*

The number of bytes written to `outputBuffer`.

### Return value

Type: HRESULT

Returns E\_NOTIMPL, as this method was never implemented in v0.

## Remarks

This method was available when exclusive raw device access had been acquired via `AcquireExclusiveRawDeviceAccess`. It was removed in v1 as part of simplification of the raw device access model.

## Version History

| Version | Changes     |
| ------- | ----------- |
| **v1**  | Removed.    |
| **v0**  | Introduced. |

## See also

[Deprecated GameInput API members](/reference/input/gameinput/deprecated/gameinput_deprecated_members)\
[IGameInputDevice::AcquireExclusiveRawDeviceAccess](/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_acquireexclusiverawdeviceaccess)\
[IGameInputDevice](/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice)


## Related topics

- [IGameInputDevice::SetRawDeviceFeature](/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_setrawdevicefeature.md)
- [IGameInputDevice::CreateRawDeviceReport](/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_createrawdevicereport.md)
- [IGameInputDevice::SendRawDeviceOutput](/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_sendrawdeviceoutput.md)
- [IGameInputDevice::GetRawDeviceFeature](/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getrawdevicefeature.md)
- [IGameInputDevice::AcquireExclusiveRawDeviceAccess](/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_acquireexclusiverawdeviceaccess.md)
