Настройка параметров Device-Specific
Ожидается, что большинство удаленных устройств NDIS будут работать хорошо без необходимости настройки параметров на узле. Однако могут возникать случаи, когда для правильной сетевой работы требуется определенная конфигурация на узле. Если устройство поддерживает настраиваемые параметры, оно должно включить следующий необязательный OID в список поддерживаемых идентификаторов OID, которые оно сообщает в ответ на запрос OID_GEN_SUPPORTED_LIST:
#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B
Если устройство поддерживает OID OID_GEN_RNDIS_CONFIG_PARAMETER , узел использует его для установки параметров устройства вскоре после того, как устройство переходит в состояние, инициализированное remote NDIS из неинициализированного состояния. Узел отправляет на устройство ноль или более REMOTE_NDIS_SET_MSGs с OID_GEN_RNDIS_CONFIG_PARAMETER в качестве значения OID для установки. Каждая такая REMOTE_NDIS_SET_MSG соответствует одному параметру устройства, который настроен на узле.
InformationBuffer, связанный с каждым из таких REMOTE_NDIS_SET_MSG, имеет следующий формат. Обратите внимание, что значения Offset относятся к началу информационного буфера.
Offset | Размер | Поле | Описание |
---|---|---|---|
0 |
4 |
ParameterNameOffset |
Указывает смещение в байтах от начала поля 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).