设置特定于设备的参数

预计大多数远程 NDIS 设备无需在主机上配置参数即可正常运行。 但是,在某些情况下,正确的网络操作需要在主机上进行一些配置。 如果设备支持可配置参数,则它应将以下可选 OID 包含在它报告的受支持 OID 列表中,以响应 OID_GEN_SUPPORTED_LIST查询:

#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B

如果设备支持 OID_GEN_RNDIS_CONFIG_PARAMETER OID,则主机会在设备从未初始化状态进入由远程 NDIS 初始化的状态后不久使用它来设置特定于设备的参数。 主机将向设备发送零个或多个REMOTE_NDIS_SET_MSGs,OID_GEN_RNDIS_CONFIG_PARAMETER作为要设置的 OID 值。 每个此类 REMOTE_NDIS_SET_MSG 对应于主机上配置的一个特定于设备的参数。

与每个此类REMOTE_NDIS_SET_MSG关联的 InformationBuffer 具有以下格式。 请注意,Offset 值相对于信息缓冲区的开头。

Offset 大小 字段 说明

0

4

ParameterNameOffset

指定表示参数名称的 Unicode 字符串所在的 ParameterNameOffset 字段开头的字节偏移量。 字符串不包含 NULL 终止符。

4

4

ParameterNameLength

指定参数名称字符串的字节长度。

8

4

ParameterType

指定参数值的数据类型。 这是下列值之一:0 - 数值;2 - 字符串值。

12

4

ParameterValueOffset

指定参数值所在的 ParameterNameOffset 字段开头的字节偏移量。

16

4

ParameterValueLength

指定参数值的字节长度。

应用参数值后,设备 发送REMOTE_NDIS_SET_CMPLT以 响应每个 REMOTE_NDIS_SET_MSG。 如果参数设置是可接受的,它将在响应中返回RNDIS_STATUS_SUCCESS状态。 如果参数设置不可接受,并且设备无法为此参数应用有用的默认值,则设备将返回相应的错误状态值, (请参阅有关状态值) 部分。 如果返回错误状态,则主机将为设备启动停止进程。

设备特定的参数应在 Windows 注册表中配置。 定义参数值的键通常在设备安装过程中在注册表中创建。 在设备的 INF 文件中指定键、类型信息、默认值和可选有效值范围的列表。 有关使用 INF 在网络设备的注册表中设置配置参数的详细信息,请参阅 Windows 2000 驱动程序开发工具包 (DDK) 。