Setting Device-Specific Parameters

It is expected that most Remote NDIS devices will function well without the need to configure parameters on the host. However, there may be cases where proper network operation requires some configuration on the host. If the device supports configurable parameters, then it should include the following optional OID in the list of supported OIDs it reports in response to a query for OID_GEN_SUPPORTED_LIST:

#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B

If the device supports the OID_GEN_RNDIS_CONFIG_PARAMETER OID, the host uses it to set device-specific parameters, soon after the device enters a state initialized by Remote NDIS from the uninitialized state. The host will send zero or more REMOTE_NDIS_SET_MSGs to the device, with OID_GEN_RNDIS_CONFIG_PARAMETER as the OID value to set. Each such REMOTE_NDIS_SET_MSG corresponds to one device-specific parameter that is configured on the host.

The InformationBuffer associated with each such REMOTE_NDIS_SET_MSG has the following format. Note that the Offset values are relative to the beginning of the information buffer.

Offset Size Field Description

0

4

ParameterNameOffset

Specifies the byte offset from the beginning of the ParameterNameOffset field at which a Unicode character string representing the parameter name is located. The string does not include a NULL terminator.

4

4

ParameterNameLength

Specifies the byte length of the parameter name string.

8

4

ParameterType

Specifies the data type of the parameter value. This is one of the following: 0 - numeric value; 2 - string value.

12

4

ParameterValueOffset

Specifies the byte offset from the beginning of the ParameterNameOffset field at which the parameter value is located.

16

4

ParameterValueLength

Specifies the byte length of the parameter value.

The device sends a REMOTE_NDIS_SET_CMPLT in response to each REMOTE_NDIS_SET_MSG, after applying the parameter value. If the parameter setting is acceptable, it returns a status of RNDIS_STATUS_SUCCESS in the response. If the parameter setting is not acceptable, and the device cannot apply a useful default value for this parameter, then the device returns an appropriate error status value (see section on status values). If an error status is returned, then the host will initiate a halt process for the device.

Device-specific parameters are expected to be configured in the Windows registry. The keys that define parameter values are typically created in the registry during the process of device installation. The list of keys, type information, default values and optional range of valid values are specified in the INF file for the device. For more information about using an INF to set up configuration parameters in the registry for network devices, consult the Windows 2000 Driver Development Kit (DDK).