Операции с параметрами конфигурации протокола (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 из сети, так как он не только разбудит устройство, но и разбудит операционную систему, что необязательно. Вместо этого модем должен кэшировать все последние элементы 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:

Схема, на которую показан процесс сброса модема МБ на основе значений PCO.

Интерфейс 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.

API-интерфейс WinRT

PCO

Фоновый триггер PCO

См. также:

NDIS_STATUS_WWAN_PCO_STATUS

NDIS_WWAN_PCO_STATUS

WWAN_PCO_VALUE

OID_WWAN_PCO