Операции с параметрами конфигурации протокола (PCO) в МБ
Общие сведения
Назначение параметров конфигурации протокола (PCO) — передача параметров внешнего сетевого протокола, связанных с активацией контекста протокола данных пакетов (PDP). Определения Windows NDIS для значений PCO обычно являются универсальными для получения полных значений PCO от модема и сети в будущем. Однако начиная с Windows 10 версии 1709 некоторые модемы могут передавать в ОС только элементы PCO оператора. В этом разделе описывается поведение текущей реализации PCO только для оператора.
Потоки
Существует три сценария, в которых значение PCO передается в узел:
- При поступлении нового значения PCO в активированном подключении
- Когда приложение или служба запрашивает последнее значение PCO из модема
- Когда подключение выполняется через мост или активируется в первый раз, а значение PCO уже существует в модеме
В первом сценарии модем должен отправить NDIS_STATUS_WWAN_PCO_STATUS уведомление операционной системе с указанием изменения нового значения PCO всякий раз при получении нового значения PCO из сети с соответствующим номером порта NDIS для представления соответствующего PDN. Чтобы избежать ненужных разрядов батареи, модем должен избегать шумных уведомлений, как описано в разделе Поведение модема с выборочной приостановкой и подключенным режимом ожидания.
Во втором сценарии, когда приложение или служба запрашивает значение PCO из модема при активированном подключении PDN, узел отправляет модему запрос OID_WWAN_PCO для чтения последнего кэшированного значения PCO в модеме.
В третьем сценарии, когда подключение активировано или установлено мостом на узле, модем должен отправить NDIS_STATUS_WWAN_PCO_STATUS уведомление, если значение PCO уже существует в модеме для активированного или мостового подключения, запрошенного узлом. Уведомление должно быть передано из соответствующего номера порта NDIS PDN.
На следующем рисунке показан поток сценария.
Поведение модема с выборочной приостановкой и подключенным режимом ожидания
Если включена выборочная приостановка, модем может уведомлять ОС всякий раз, когда она получает структуру данных PCO из сети. Однако модем должен избегать ненужного пробуждения устройства. В противном случае шумные уведомления PCO из сети будут часто пробуждать устройство и без необходимости разрядить аккумулятор.
Если включен режим ожидания с подключением, модем не должен уведомлять ОС о получении структур данных PCO из сети, так как он не только разбудит устройство, но и разбудит операционную систему, что необязательно. Вместо этого модем должен кэшировать все последние элементы PCO из структуры данных и уведомлять ОС после выхода операционной системы из режима ожидания с подключением. Для модема MBIM он должен кэшировать все структуры данных PCO и отправлять уведомления PCO в ОС только после того, как узел подпишется на него. Это будет сделано с помощью MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST CID, когда питание системы вернется в полную мощность после выхода из режима ожидания с подключением.
Сброс модема на основе значений PCO
На основе значений PCO, полученных из сети, модем будет сброшен в следующих сценариях:
- Пользователь завершил самостоятельную активацию после получения PCO = 5 из сети. Новое значение PCO (3, 0 или все, что может распознать приложение мобильного оператора) будет отправлено в ОС, а ОПЕРАЦИОННая система передаст его в приложение оператора мобильной связи.
- Пользователь добавил дополнительный кредит в свою учетную запись после получения PCO = 3. Новое значение PCO (0 или все, что может распознать приложение мобильного оператора) будет отправлено в ОС, а ОПЕРАЦИОННая система передаст его приложению оператора мобильной связи.
Узел не знает о сбросе модема, поэтому активированные подключения с узла не будут деактивированы, и модем должен автоматически восстановить соединение с этими PDN после сброса. После установки подключения и получения нового входящего значения PCO из сети модем предоставит узлу незапрошенное уведомление NDIS_STATUS_WWAN_PCO_STATUS .
На следующей схеме показан поток сброса модема при возникновении одного из этих сценариев с Verizon Wireless в качестве примера MO:
Интерфейс NDIS для модема
Сведения о состоянии и полезных данных значения PCO, полученного модемом из сети оператора, см. в разделе OID_WWAN_PCO. OID_WWAN_PCO использует структуру NDIS_WWAN_PCO_STATUS , которая, в свою очередь, содержит структуру WWAN_PCO_VALUE , представляющую полезные данные PCO из сети.
Уведомление о состоянии, отправленное драйвером модема для информирования ОС о текущем состоянии PCO в модеме, см. в разделе NDIS_STATUS_WWAN_PCO_STATUS.
CID в МБ для модема
Service = MBB_UUID_BASIC_CONNECT_EXT_CONSTANT
Service UUID = 3d01dcc5-fef5-4d05-0d3a-bef7058e9aaf
Для PCO определены следующие идентификаторы CID:
CID | Командный код | Минимальная версия ОС |
---|---|---|
MBIM_CID_PCO | 9 | Windows 10 версии 1709 |
MBIM_CID_PCO
Эта команда используется для запроса данных PCO, кэшированных в модеме из сети оператора мобильной связи.
Запрос
InformationBuffer содержит MBIM_PCO_VALUE , в котором единственным соответствующим полем является SessionId. SessionId зарезервирован для использования в будущем и всегда будет иметь значение 0 в Windows 10 версии 1709. SessionId в запросе указывает, какое значение PCO потока данных IP должно быть возвращено функцией.
Присвойте параметру
Не применяется
Незапрошенное событие
Нежелательные события содержат MBIM_PCO_VALUE и отправляются при получении нового значения PCO в активированном соединении.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | Неприменимо | MBIM_PCO_VALUE | Неприменимо |
Ответ | Неприменимо | MBIM_PCO_VALUE | MBIM_PCO_VALUE |
Структуры данных
MBIM_PCO_TYPE
Тип | Значение | Описание |
---|---|---|
MBIMPcoTypeComplete | 0 | Указывает, что полная структура PCO будет передаваться в соответствии с полученной из сети, а заголовок реалистично отражает протокол в октете 3 структуры PCO, определенной в спецификации 3GPP TS24.008. |
MBIMPcoTypePartial | 1 | Указывает, что модем будет передавать только подмножество структур PCO, полученных из сети. Заголовок соответствует структуре PCO, определенной в спецификации 3GPP TS24.008, но "Протокол конфигурации" октета 3 может быть недопустимым. |
MBIM-PCO-TYPE
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | SessionId | UINT32 | SessionId в запросе указывает, какое значение PCO потока данных IP должно быть возвращено функцией. |
4 | 4 | PcoDataSize | UINT32 | Длина PcoData от 0 до 256. В запросе это значение будет равно 0. |
8 | 4 | PcoDataType | UINT32 | Тип данных PCO. Дополнительные сведения см. в разделе MBIM_PCO_TYPE. |
12 | PcoDataBuffer | DATABUFFER | Структура PCO из спецификации 3GPP TS24.008. |
Коды состояний
Этот идентификатор CID использует только универсальные коды состояния.
Тесты аппаратного лабораторного комплекта (HLK)
См. инструкции по установке HLK.
В HLK Studio подключитесь к драйверу сотового модема устройства и запустите тест TestPco.