# GetDeviceParameters Method - neoVI API

This method forces the firmware on neoVI device to be updated.

{% tabs %}
{% tab title="C/C++ Declare" %}

```cpp
int _stdcall icsneoGetDeviceParameters(void * hObject, char *pParameters, char *pValues, short ValuesLength);
```

{% endtab %}

{% tab title="Visual Basic .NET Declare" %}

```vbnet
Public Declare Function icsneoGetDeviceParameters Lib “icsneo40.dll” (ByVal hObject As IntPtr, ByRef pParameters As Byte, ByRef pValues As Byte, ByVal ValuesLength As short) As Integer
```

{% endtab %}

{% tab title="C# Declare" %}

```csharp
[DllImport(“icsneo40.dll”)] public static extern int icsneoGetDeviceParameters(IntPtr hObject, ref byte pParameters, ref byte pValues, short ValuesLength);
```

{% endtab %}
{% endtabs %}

**Parameters**

hObject

\[in] Specifies the driver object created by [OpenNeoDevice](/neovi-api/win32-api-overview-intrepidcs-api/basic-functions-overview-intrepidcs-api/openneodevice-method-intrepidcs-api.md).

pParameters

\[in] This is an array containing parameter names. Each parameter is separated by a comma. The parameter names are matched without regard to case. All spaces are ignored. The size of this array must be 1024 bytes or less. The format of the array is:

> ParameterName,ParameterName, , …
>
> See [Valid Parameters](/neovi-api/win32-api-overview-intrepidcs-api/structures-types-and-defines-overview-intrepidcs-api/setting-structures-overview-intrepidcs-api/valid-parameter-names-for-the-setdeviceparameter-and-getdeviceparameter-methods.md) for a list of parameter names for each device and supported network.
>
> See examples below on how to build a parameter string.

pValues

\[out] This array will contain the values requested in the pParameters array. The values will be separated by comma’s and in the order of the parameter names specified in the pParameters array. If a parameter name is not recognized the word “Error” will be placed in that value’s location. If the pValues array length (specified by the ValuesLength parameter) is not long enough to store all of the values, the retrieval of parameter values will end and only a portion of the values will have be read and stored. The return value of the function, if greater than 0, will indicate the number of values read.

**Return Values**

-1 if there was an error while reading parameter values from the device. A return value greater than 0 indicates the total number of parameters read. A return value of 0 indicates that ValueLength was greater than 1024. [GetLastAPIError](/neovi-api/win32-api-overview-intrepidcs-api/error-functions-overview-intrepidcs-api/getlastapierror-method-intrepidcs-api.md) must be called to obtain the specific error. The errors that can be generated by this function are:

NEOVI\_ERROR\_DLL\_NEOVI\_NO\_RESPONSE = 75

**Remarks**

It is ineffecient to use this function to read one parameter value at a time. If multiple parameters need to be read, combine them into a long string and call this function once.

### Examples

{% tabs %}
{% tab title="C/C++ Example" %}

```cpp
char pGetFireParms[] = "network_enables,can1/Mode,can1/Baudrate";
char Values[500];
int iRetVal;

iRetVal = icsneoGetDeviceParameters(hObject, pGetFireParms, Values, 499);
```

{% endtab %}

{% tab title="Visual Basic .NET Example" %}

```vbnet
```

{% endtab %}

{% tab title="C# Example" %}

```csharp
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.intrepidcs.com/neovi-api/win32-api-overview-intrepidcs-api/device-settings-functions-overview-intrepidcs-api/general-device-settings-intrepidcs-api/getdeviceparameters-method-intrepidcs-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
