Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе описаны процедуры, позволяющие обеспечить доступность и готовность устройства МБ к действиям, связанным с сетью, прежде чем служба MB переходит к настройке подключений к данным. Устройство готово к использованию после активации подписки пользователя и сохранения данных, связанных с подписчиком, на устройстве или модуле идентификации подписчика (SIM-карте).
Служба MB предполагает, что минипорт-драйвер автоматически инициализирует оборудование устройства MB (радио стек, SIM-карта или эквивалентную схему) после загрузки системы, не ожидая каких-либо инструкций из службы.
Драйверы минипорта устанавливают исходное состояние готовности устройства мобильной связи на WwanReadyStateOff. По мере инициализации минипорт-драйверы должны отправлять уведомления о событиях, чтобы сообщить службе MB о изменениях состояния готовности устройства.
При возникновении ошибок драйверы мини-порта должны остановить процесс инициализации. После устранения ошибки минипорт-драйверы могут возобновить процесс инициализации, пока их устройство не достигнет состояния готовности WwanReadyStateInitialized.
Ниже приведены примеры некоторых сценариев ошибок:
Если для устройства требуется SIM-карта и драйвер минипорта обнаруживает отсутствие SIM-карты, минипорт-драйвер должен отправить WwanReadyStateSimNotInserted уведомление о событии готовности, а мини-драйвер должен оставаться в этом состоянии, пока пользователь не вставляет SIM-карту на устройство.
Если для устройства требуется SIM-карта, а минипорт-драйвер не может считывать SIM-карту, вставленную (например, U-RIM вставляется в устройство на основе GSM или USIM вставляется в устройство на основе CDMA) или SIM-карта несовместима с устройством (например, 3G USIM вставляется на устройство 2G, который не может интерпретировать формат USIM), минипорт-драйвер должен отправить WwanReadyStateBadSim уведомление о событии готовности, а драйвер минипорта должен оставаться в этом состоянии, пока пользователь не вставляет правильную SIM-карту на устройство.
Если устройство заблокировано ПИН-кодом (для устройств, использующих SIM-карты) или паролем (для устройств, которые не используют SIM-карты), что предотвращает дальнейшее выполнение инициализации устройства, минипорт-драйвер должен отправить WwanReadyStateDeviceLocked уведомление о событии готовности к состоянию, а драйвер мини-порта должен оставаться в этом состоянии, пока пользователь не введет правильный ПИН-код или пароль.
Если драйвер минипорта обнаруживает, что для продолжения требуется активация услуги, он должен отправить уведомление о состоянии готовности WwanReadyStateNotActivated и оставаться в этом состоянии до тех пор, пока услуга не будет активирована. Это типичное поведение для устройств на основе CDMA в Северной Америке.
Если минипорт-драйвер сталкивается с неисправностями, отличными от упомянутых выше, драйвер минипорта должен отправить уведомление о событии состояния готовности с ошибкой WwanReadyStateFailure и должен оставаться в этом состоянии до тех пор, пока проблема не будет обнаружена и исправлена.
Помните, что служба МБ не предполагает, что драйверы минипорта могут обнаруживать все эти ошибки. Кроме того, служба не определяет порядок, в котором драйверы мини-порта обнаруживают такие условия ошибки. Однако лучше всего реализовать сценарии ошибок в указанном выше порядке.
Пока мини-драйвер не отправит WwanReadyStateInitialized уведомление о событии готовности, служба не будет продолжать выполнять действия, связанные с сетью, пока проблема не будет определена и исправлена. Однако служба по-прежнему может отправлять OID на мини-порт драйвера.
Драйверы минипорта не должны ожидать готовности подсистемы SMS, прежде чем сообщать о WwanReadyStateInitialized состоянии готовности. Вместо этого минипорт-драйверы должны отправлять отдельное уведомление OID_WWAN_SMS_CONFIGURATION, когда подсистема SMS готова отправлять и получать SMS-сообщения.
Поддержка режима экстренного реагирования
Если драйвер минипорта указывает на то, что он поддерживает службы экстренного вызова при обработке OID_WWAN_READY_INFO, драйвер минипорта должен задать аварийный режим члену структуры WWAN_READY_INFO в WwanEmergencyModeOn. В этом случае мини-драйвер должен продолжать отправлять уведомления о регистрации в службу MB, но служба не будет вызывать какие-либо функции автоматической настройки.
Минипорт драйверы могут указать, что они поддерживают службы экстренного вызова даже в сценариях, где они обнаруживают, что SIM-карта больше недействительна, возможно, потому что подписка неоплачена, или служба была деактивирована, так как устройство было украдено.
Инициализация драйвера Минипорта МБ
На следующей схеме представлен процесс, используемый для определения того, является ли интерфейс квалифицированным MB интерфейсом, и для сбора сведений о возможностях устройства. Эти шаги выполняются для каждого перечисленного интерфейса МБ при запуске службы МБ, а также для каждого прибытия нового интерфейса во время выполнения службы. Метки в полужирном виде представляют идентификаторы OID или элемент управления потоком транзакций. Метки в обычном тексте представляют важные флаги в структуре OID.
Чтобы инициализировать драйвер мини-порта МБ, используйте следующую процедуру:
Служба MB отправляет синхронный (блокирующий) запрос OID_GEN_PHYSICAL_MEDIUM для определения типа устройства МБ. Драйвер минипорта отвечает NdisPhysicalMediumWirelessWan, чтобы указать, что устройство MB является устройством WWAN.
Служба MB отправляет синхронный (блокирующий) запрос OID_GEN_MEDIA_SUPPORTED драйверу минипорта, чтобы определить, какой тип носителя использует устройство MB. Драйвер минипорта отвечает на NdisMedium802_3, чтобы указать, что он использует эмуляцию Ethernet.
Служба MB отправляет синхронный (блокирующий) запрос OID_WWAN_DRIVER_CAPS драйверу минипорта, чтобы определить, какую версию модели драйвера поддерживает драйвер минипорта. Минипорт-драйвер отвечает с использованием WWAN_VERSION.
Служба MB отправляет асинхронный (неблокирующий) запрос OID_WWAN_DEVICE_CAPS драйверу минипорта для идентификации возможностей устройства МБ. Минипорт-драйвер отвечает с временным подтверждением того, что он получил запрос, и он отправит уведомление с запрошенной информацией в будущем.
Драйвер минипорта отправляет уведомление NDIS_STATUS_WWAN_DEVICE_CAPS службе MB, указывающее возможности устройства МБ, которое поддерживает драйвер минипорта. Например, если минипорт-драйвер поддерживает устройство на основе GSM, он должен указать значение WwanCellularClassGsm в элементе DeviceCaps.WwanCellularClass, который является членом структуры NDIS_WWAN_DEVICE_CAPS. Если минипорт-драйвер поддерживает устройство на основе CDMA, он должен указать WwanCellularClassCdma.
Инициализация устройства SIM-Locked с контекстом User-Defined
На следующей схеме показан сценарий, в котором пользователь вводит ПИН-код SIM-карты и настраивает строку имени точки доступа вручную. Метки полужирным шрифтом являются идентификаторами OID или элементом управления потоком транзакций, а метки в обычном тексте являются важными флагами в структуре OID.
Чтобы инициализировать устройство на основе GSM с заблокированным ПИН-кодом 1, выполните следующие действия:
Служба MB отправляет асинхронный (неблокирующий) запрос OID_WWAN_READY_INFO драйверу минипорта, чтобы определить состояние готовности устройства. Минипорт-драйвер отвечает с предварительным подтверждением (NDIS_STATUS_INDICATION_REQUIRED), что он получил запрос, и что он отправит уведомление с запрошенной информацией в будущем.
Минипорт-драйвер отправляет уведомление NDIS_STATUS_WWAN_FAILURE службе MB, чтобы указать, что модуль удостоверения подписчика (SIM) заблокирован.
Служба MB отправляет асинхронный (неблокирующий) запрос OID_WWAN_PIN в драйвер минипорта. Минипорт-драйвер дает предварительное подтверждение (NDIS_STATUS_INDICATION_REQUIRED), что запрос получен, и что он отправит уведомление с запрошенной информацией в будущем.
Минипорт-драйвер отправляет уведомление NDIS_STATUS_WWAN_SUCCESS в службу мобильной широкополосной связи.
Служба MB отправляет асинхронный (неблокирующий) OID_WWAN_PIN запрос на установку минипорт-драйверу. Минипорт-драйвер отвечает с предварительным подтверждением (NDIS_STATUS_INDICATION_REQUIRED), что он получил запрос, и что он отправит уведомление с запрошенной информацией в будущем.
Минипорт-драйвер отправляет уведомление NDIS_STATUS_WWAN_SUCCESS в службу мобильной широкополосной связи.
Драйвер минипорта отправляет уведомление NDIS_STATUS_WWAN_READY_INFO в службу MB, указывая ей, что состояние устройства MB — WwanReadyStateInitialized.
Служба MB отправляет асинхронный (неблокирующий) OID_WWAN_REGISTER_STATE запрос к драйверу минипорта. Минипорт драйвер отвечает временным подтверждением (NDIS_STATUS_INDICATION_REQUIRED) о том, что запрос получен, и уведомление с запрошенной информацией будет отправлено позже.
Минипорт-драйвер отправляет уведомление NDIS_STATUS_WWAN_SUCCESS в службу мобильного широкополосного доступа.
Минипорт-драйвер отправляет уведомление NDIS_STATUS_WWAN_REGISTER_STATE в службу МБ.
Служба MB отправляет асинхронный (неблокирующий) OID_WWAN_HOME_PROVIDER запрос к драйверу минипорта. Минипорт-драйвер отвечает с предварительным подтверждением (NDIS_STATUS_INDICATION_REQUIRED), что он получил запрос, и в будущем отправит уведомление с запрошенной информацией.
Минипорт-драйвер отправляет уведомление NDIS_STATUS_WWAN_SUCCESS в службу мобильного широкополосного доступа.
Минипорт-драйвер отправляет уведомление NDIS_STATUS_WWAN_REGISTER_STATE в службу МБ.
Служба MB отправляет асинхронный (неблокирующий) запрос OID_WWAN_PACKET_SERVICE минипорт-драйверу. Минипорт-драйвер отвечает предварительным уведомлением (NDIS_STATUS_INDICATION_REQUIRED), что он получил запрос и отправит уведомление с запрошенной информацией в дальнейшем.
Минипорт-драйвер отправляет уведомление NDIS_STATUS_WWAN_PACKET_SERVICE в службу MB.
Служба MB отправляет асинхронный (неблокирующий) запрос OID_WWAN_PROVISIONED_CONTEXTS к минипорту. Минипорт-драйвер дает предварительное подтверждение (NDIS_STATUS_INDICATION_REQUIRED) о получении запроса и о том, что в будущем отправит уведомление с запрошенной информацией.
Драйвер минипорта отправляет NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS в службу МБ.
Служба MB отправляет асинхронный (неблокирующий) OID_WWAN_PROVISIONED_CONTEXTS запрос на установку в службу MB. Минипорт-драйвер отвечает с промежуточным подтверждением (NDIS_STATUS_INDICATION_REQUIRED) о том, что он получил запрос и отправит уведомление с запрошенной информацией позже.
Драйвер минипорта отправляет NDIS_STATUS_WWAN_SUCCESS в службу МБ.
См. также
Дополнительные сведения о готовности устройств см. в OID_WWAN_READY_INFO.
Дополнительные сведения об инициализации устройства с предоставленными контекстами смотрите в разделе MB Provisioned Context Operations.