设置特定于设备的参数
预计大多数远程 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) 。