Returns information about the device capabilities: supported protocols, number of simultaneous channels, serial number and other characteristics. Called with the DeviceID returned by PassThruOpen.
IoctlID
0x800C
pInput
SCONFIG_LIST* — list of requested parameters
pOutput
NULL (the result is written to pInput)
Unlike GET_CONFIG, the GET_DEVICE_INFO function is called with DeviceID, not with ChannelID.
GET_PROTOCOL_INFO — Protocol information
Returns information about the capabilities of a specific protocol: maximum buffer sizes, number of filters, supported parameters. Called with the ChannelID returned by PassThruConnect.
IoctlID
0x800D
pInput
SCONFIG_LIST* — list of requested parameters
pOutput
NULL (the result is written to pInput)
Data structures
typedef struct {
unsigned long Parameter; // Parameter identifier
unsigned long Value; // Returned value
} SCONFIG;
typedef struct {
unsigned long NumOfParams; // Number of parameters in the list
SCONFIG *ConfigPtr; // Pointer to the SCONFIG array
} SCONFIG_LIST;
Returned error codes
Code
Description
Possible causes and solutions
STATUS_NOERROR
Function completed successfully
—
ERR_DEVICE_NOT_CONNECTED
No connection to the adapter
Adapter is powered off or out of range
Solution: check power supply and connection
ERR_INVALID_DEVICE_ID
Invalid device identifier
DeviceID was not obtained through PassThruOpen
Solution: call PassThruOpen
ERR_INVALID_CHANNEL_ID
Invalid channel identifier
ChannelID was not obtained through PassThruConnect (for GET_PROTOCOL_INFO)
Solution: call PassThruConnect
ERR_NULL_PARAMETER
NULL passed instead of a pointer
pInput is NULL
Solution: pass a pointer to SCONFIG_LIST
ERR_NOT_SUPPORTED
Parameter is not supported
The requested parameter is not available
Solution: check the list of supported parameters
ERR_FAILED
Unspecified error
Internal error
Solution: call PassThruGetLastError()
GET_DEVICE_INFO parameters
Device identification
Parameter
Value
Description
SERIAL_NUMBER
0x01
Device serial number (string)
PART_NUMBER
0x49
Device part number
Protocol support
Return SUPPORTED (1) or NOT_SUPPORTED (0).
Parameter
Value
Protocol
J1850PWM_SUPPORTED
0x02
J1850 PWM (Ford)
J1850VPW_SUPPORTED
0x03
J1850 VPW (GM)
ISO9141_SUPPORTED
0x04
ISO 9141-2
ISO14230_SUPPORTED
0x05
ISO 14230 (KWP2000)
CAN_SUPPORTED
0x06
CAN (raw)
ISO15765_SUPPORTED
0x07
ISO 15765 (CAN UDS)
SCI_A_ENGINE_SUPPORTED
0x08
SCI-A Engine (Chrysler)
SCI_A_TRANS_SUPPORTED
0x09
SCI-A Transmission (Chrysler)
SCI_B_ENGINE_SUPPORTED
0x0A
SCI-B Engine (Chrysler)
SCI_B_TRANS_SUPPORTED
0x0B
SCI-B Transmission (Chrysler)
SW_ISO15765_SUPPORTED
0x0C
Single-Wire ISO 15765
SW_CAN_SUPPORTED
0x0D
Single-Wire CAN (GM)
GM_UART_SUPPORTED
0x0E
GM UART
UART_ECHO_BYTE_SUPPORTED
0x0F
UART Echo Byte
HONDA_DIAGH_SUPPORTED
0x10
Honda DIAG-H
J1939_SUPPORTED
0x11
J1939 (heavy-duty)
J1708_SUPPORTED
0x12
J1708 (heavy-duty)
TP2_0_SUPPORTED
0x13
TP 2.0 (VAG)
J2610_SUPPORTED
0x14
J2610 (Chrysler DRB-III)
ANALOG_IN_SUPPORTED
0x15
Analog inputs
FT_CAN_SUPPORTED
0x31
Fault-Tolerant CAN
FT_ISO15765_SUPPORTED
0x32
FT ISO 15765
FD_CAN_SUPPORTED
0x4C
CAN FD
FD_ISO15765_SUPPORTED
0x4D
ISO 15765 over CAN FD
ETHERNET_NDIS_SUPPORTED
0x54
Ethernet NDIS (DoIP)
Simultaneous channels
Number of channels that can be opened simultaneously for each protocol.
Parameter
Value
Protocol
J1850PWM_SIMULTANEOUS
0x35
J1850 PWM
J1850VPW_SIMULTANEOUS
0x36
J1850 VPW
ISO9141_SIMULTANEOUS
0x37
ISO 9141
ISO14230_SIMULTANEOUS
0x38
ISO 14230
CAN_SIMULTANEOUS
0x39
CAN
ISO15765_SIMULTANEOUS
0x3A
ISO 15765
SW_CAN_SIMULTANEOUS
0x40
SW-CAN
J1939_SIMULTANEOUS
0x44
J1939
TP2_0_SIMULTANEOUS
0x46
TP 2.0
FD_CAN_SIMULTANEOUS
0x4E
CAN FD
FD_ISO15765_SIMULTANEOUS
0x4F
ISO 15765 FD
J1962 pin assignment
Return the mask of OBD-II pins used by the protocol.