This structure provides details about a vehicle input/output (I/O) device.
typedef struct {
CLSID clsidDevice;
TCHAR szDeviceName[VIODEVICENAMESIZE];
DWORD grfModes;
VARIANT vRangeLow;
VARIANT vRangeHigh;
DWORD dwValueType;
DWORD dwValueUnits;
LONG lExponent;
}
| Access mode | Value | 
| VIODEVICEMODE_READ | 0x0001 | 
| VIODEVICEMODE_WRITE | 0x0002 | 
| Data value type | Value | 
| VIOMEASUREMENT_STATE | 0 | 
| VIOMEASUREMENT_ONOFF | 1 | 
| VIOMEASUREMENT_PERCENTAGE | 2 | 
| VIOMEASUREMENT_ROTATIONALSPEED | 3 | 
| VIOMEASUREMENT_SPEED | 4 | 
| VIOMEASUREMENT_TEMPERATURE | 5 | 
| VIOMEASUREMENT_GAGEPESSURE | 6 | 
| VIOMEASUREMENT_ROTATION | 7 | 
| VIOMEASUREMENT_VOLTAGE | 8 | 
| VIOMEASUREMENT_ABSOLUTEPRESSURE | 9 | 
| VIOMEASUREMENT_FLOWRATE | 10 | 
| VIOMEASUREMENT_DISCRETEMASK | 11 | 
| VIOMEASUREMENT_DISTANCE | 12 | 
| VIOMEASUREMENT_COLLECTION | 13 | 
| Units | Value | 
| VIOUNITS_ENUM | 0 | 
| VIOUNITS_BINARY | 1 | 
| VIOUNITS_PERCENT | 2 | 
| VIOUNITS_RPM | 3 | 
| VIOUNITS_KILOMETERSPERHOUR | 4 | 
| VIOUNITS_CELSIUS | 5 | 
| VIOUNITS_KILOPASCALSGAGE | 6 | 
| VIOUNITS_DEGREES | 7 | 
| VIOUNITS_VOLTS | 8 | 
| VIOUNITS_KILOPASCALSABSOLUTE | 9 | 
| VIOUNITS_GRAMSPERSECOND | 10 | 
| VIOUNITS_BITMASK | 11 | 
| VIOUNITS_KILOMETERS | 12 | 
| VIOUNITS_DIAGNOSTICITEMS | 13 |