Prontidão do dispositivo MB
Este tópico descreve os procedimentos para garantir que um dispositivo MB esteja acessível e pronto para ser usado para atividades relacionadas à rede antes que o Serviço MB prossiga para configurar conexões de dados. O dispositivo está pronto para ser usado quando a assinatura do usuário tiver sido ativada e as informações relacionadas ao assinante armazenadas no dispositivo ou no SIM (Módulo de Identidade do Assinante cartão)
O Serviço MB pressupõe que um driver de miniporte inicialize automaticamente o hardware do dispositivo MB (pilha de rádio, SIM cartão ou circuito equivalente) depois que o sistema o tiver carregado, sem aguardar nenhuma instrução do serviço.
Os drivers de miniporte definem o estado de pronto inicial de seu dispositivo MB como WwanReadyStateOff. À medida que prossiga com a inicialização, os drivers de miniport devem enviar notificações de evento para informar o Serviço MB de alterações no estado pronto do dispositivo.
Os drivers de miniporto devem interromper o processo de inicialização se encontrarem condições de erro. Depois que a condição de erro for desmarcada, os drivers de miniporto poderão retomar o processo de inicialização até que o dispositivo chegue ao estado pronto WwanReadyStateInitialized .
Veja a seguir exemplos de alguns cenários de erro:
Se o dispositivo exigir um sim cartão e o driver de miniporto detectar que nenhum cartão sim está presente, o driver de miniporto deverá enviar uma notificação de evento de estado pronto WwanReadyStateSimNotInserted e o driver de miniporte deverá permanecer nesse estado até que o usuário insira um SIM cartão no dispositivo.
Se o dispositivo exigir um sim cartão e o driver de miniporte não puder ler o cartão sim inserido (por exemplo, um U-RIM é inserido em um dispositivo baseado em GSM ou um USIM é inserido em um dispositivo baseado em CDMA) ou o cartão SIM não é compatível com o dispositivo (por exemplo, um USIM 3G é inserido em um dispositivo 2G, que não pode interpretar o formato USIM), o driver de miniporto deve enviar uma notificação de evento de estado pronto WwanReadyStateBadSim e o driver de miniporte deve permanecer nesse estado até que o usuário insira um SIM correto cartão no dispositivo.
Se o dispositivo estiver bloqueado pelo PIN (para dispositivos que usam cartões SIM) ou por uma senha (para dispositivos que não usam cartões SIM) que impeça o progresso da inicialização do dispositivo, o driver de miniporte deverá enviar uma notificação de evento de estado pronto WwanReadyStateDeviceLocked e o driver de miniporte deverá permanecer nesse estado até que o usuário insira o PIN ou a senha correto.
Se o driver de miniporto detectar que a ativação do serviço é necessária para continuar, o driver de miniporto deverá enviar uma notificação de evento de estado pronto WwanReadyStateNotActivated e ele deverá permanecer nesse estado até que o serviço seja ativado. Esse é um comportamento típico para dispositivos baseados em CDMA em América do Norte.
Se o driver de miniporto encontrar falhas diferentes daquelas mencionadas anteriormente, o driver de miniporto deverá enviar uma notificação de evento de estado pronto WwanReadyStateFailure e ele deverá permanecer nesse estado até que o problema seja identificado e corrigido.
Lembre-se de que o Serviço MB não pressupõe que os drivers de miniporto podem detectar todos esses erros. O serviço também não pressupõe a ordem na qual os drivers de miniporto detectam essas condições de erro. No entanto, é melhor implementar os cenários de erro na ordem listada anteriormente.
Até que um driver de miniporte envie uma notificação de evento de estado pronto WwanReadyStateInitialized , o serviço não continuará mais com atividades relacionadas à rede até que o problema seja identificado e corrigido. No entanto, o serviço ainda pode enviar OIDs para o driver de miniport.
Os drivers de miniporte não precisam esperar que o subsistema SMS esteja pronto antes de relatar o estado pronto WwanReadyStateInitialized . Em vez disso, os drivers de miniporte devem enviar uma notificação OID_WWAN_SMS_CONFIGURATION separada quando o subsistema SMS estiver pronto para enviar e receber mensagens SMS.
Suporte ao modo de emergência
Se o driver de miniporto indicar que ele dá suporte a serviços de chamada de emergência durante o processamento OID_WWAN_READY_INFO o driver de miniporto deverá definir o membro EmergencyMode da estrutura WWAN_READY_INFO como WwanEmergencyModeOn. Nesse caso, o driver de miniporte deve continuar a enviar notificações de registro para o Serviço MB, mas o serviço não invocará nenhuma funcionalidade relacionada à configuração automática.
Os drivers de miniporto podem especificar que dão suporte a serviços de chamada de emergência mesmo em cenários em que detectam que o SIM não é mais válido, talvez porque a assinatura não está paga ou o serviço foi desativado porque o dispositivo foi relatado como roubado.
Inicialização do driver de miniporto MB
O diagrama a seguir representa o processo feito para determinar se a interface é uma interface MB qualificada e coletar informações sobre os recursos do dispositivo. Essas etapas são executadas para cada interface MB enumerada quando o Serviço MB é iniciado, bem como para cada nova chegada da interface enquanto o serviço está em execução. Os rótulos em negrito representam identificadores OID ou controle de fluxo transacional. Os rótulos no texto regular representam os sinalizadores importantes dentro da estrutura OID.
Para inicializar um driver de miniporto MB, use o seguinte procedimento:
O Serviço MB envia uma solicitação de consulta de OID_GEN_PHYSICAL_MEDIUM síncrona (bloqueio) para identificar o tipo do dispositivo MB. O driver de miniporto responde com NdisPhysicalMediumWirelessWan para indicar que o dispositivo MB é um dispositivo WWAN.
O Serviço MB envia uma solicitação de consulta síncrona (bloqueio) OID_GEN_MEDIA_SUPPORTED para o driver de miniporto para identificar que tipo de meio o dispositivo MB usa. O driver de miniporte responde com NdisMedium802_3 para indicar que ele usa a emulação Ethernet.
O Serviço MB envia uma solicitação de consulta síncrona (bloqueio) OID_WWAN_DRIVER_CAPS para o driver de miniporto para identificar qual versão do modelo de driver o driver de miniporte dá suporte. O driver de miniporte responde com WWAN_VERSION.
O Serviço MB envia uma solicitação de consulta assíncrona (sem bloqueio) OID_WWAN_DEVICE_CAPS para o driver de miniport para identificar os recursos do dispositivo MB. O driver de miniporte responde com uma confirmação provisória de que recebeu a solicitação e enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia uma notificação de NDIS_STATUS_WWAN_DEVICE_CAPS para o Serviço MB que indica os recursos do dispositivo MB aos quais o driver de miniporto dá suporte. Por exemplo, se o driver de miniporto der suporte a um dispositivo baseado em GSM, ele deverá especificar o valor WwanCellularClassGsm no membro DeviceCaps.WwanCellularClass da estrutura NDIS_WWAN_DEVICE_CAPS . Se o driver de miniportar der suporte a um dispositivo baseado em CDMA, ele deverá especificar WwanCellularClassCdma.
Inicialização de SIM-Locked dispositivo GPRS com um contexto de User-Defined
O diagrama a seguir ilustra o cenário no qual o usuário insere um PIN sim e configura manualmente uma cadeia de caracteres de nome de ponto de acesso. Os rótulos em negrito são identificadores OID ou controle de fluxo transacional e os rótulos em texto regular são os sinalizadores importantes dentro da estrutura OID.
Para inicializar um dispositivo baseado em GSM com PIN1 bloqueado, implemente as seguintes etapas:
O Serviço MB envia uma solicitação de consulta assíncrona (sem bloqueio) OID_WWAN_READY_INFO para o driver de miniporto para identificar o estado pronto do dispositivo. O driver de miniporto responde com uma confirmação provisória (NDIS_STATUS_INDICATION_REQUIRED) de que recebeu a solicitação e que enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia uma notificação NDIS_STATUS_WWAN_FAILURE ao Serviço MB para indicar ao Serviço MB que o SIM (módulo de identidade do assinante) está bloqueado.
O Serviço MB envia uma solicitação de consulta assíncrona (sem bloqueio) OID_WWAN_PIN para o driver de miniport. O driver de miniporto responde com uma confirmação provisória (NDIS_STATUS_INDICATION_REQUIRED) de que recebeu a solicitação e que enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia uma notificação de NDIS_STATUS_WWAN_SUCCESS para o Serviço MB.
O Serviço MB envia uma solicitação assíncrona (sem bloqueio) OID_WWAN_PIN definida para o driver de miniport. O driver de miniporto responde com uma confirmação provisória (NDIS_STATUS_INDICATION_REQUIRED) de que recebeu a solicitação e que enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia uma notificação de NDIS_STATUS_WWAN_SUCCESS para o Serviço MB.
O driver de miniporto envia uma notificação NDIS_STATUS_WWAN_READY_INFO para o Serviço MB que indica ao Serviço MB que o estado do dispositivo MB é WwanReadyStateInitialized.
O Serviço MB envia uma solicitação de consulta assíncrona (sem bloqueio) OID_WWAN_REGISTER_STATE para o driver de miniport. O driver de miniporte responde com uma confirmação provisória (NDIS_STATUS_INDICATION_REQUIRED) de que recebeu a solicitação e enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia uma notificação de NDIS_STATUS_WWAN_SUCCESS para o Serviço MB.
O driver de miniporto envia uma notificação de NDIS_STATUS_WWAN_REGISTER_STATE para o Serviço MB.
O Serviço MB envia uma solicitação de consulta assíncrona (sem bloqueio) OID_WWAN_HOME_PROVIDER para o driver de miniport. O driver de miniporte responde com uma confirmação provisória (NDIS_STATUS_INDICATION_REQUIRED) de que recebeu a solicitação e enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia uma notificação de NDIS_STATUS_WWAN_SUCCESS para o Serviço MB.
O driver de miniporto envia uma notificação de NDIS_STATUS_WWAN_REGISTER_STATE para o Serviço MB.
O Serviço MB envia uma solicitação assíncrona (sem bloqueio) OID_WWAN_PACKET_SERVICE para o driver de miniport. O driver de miniporto responde com uma confirmação provisória (NDIS_STATUS_INDICATION_REQUIRED) de que recebeu a solicitação e que enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia uma notificação de NDIS_STATUS_WWAN_PACKET_SERVICE para o Serviço MB.
O Serviço MB envia uma solicitação de consulta assíncrona (sem bloqueio) OID_WWAN_PROVISIONED_CONTEXTS para o driver de miniport. O driver de miniporte responde com uma confirmação provisória (NDIS_STATUS_INDICATION_REQUIRED) de que recebeu a solicitação e enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS para o Serviço MB.
O Serviço MB envia uma solicitação assíncrona (sem bloqueio) OID_WWAN_PROVISIONED_CONTEXTS definida para o Serviço MB. O driver de miniporte responde com uma confirmação provisória (NDIS_STATUS_INDICATION_REQUIRED) de que recebeu a solicitação e enviará uma notificação com as informações solicitadas no futuro.
O driver de miniporto envia NDIS_STATUS_WWAN_SUCCESS para o Serviço MB.
Consulte Também
Para obter mais informações sobre a preparação do dispositivo, consulte OID_WWAN_READY_INFO.
Para obter mais informações sobre a inicialização do dispositivo com contextos provisionados, consulte Operações de contexto provisionadas do MB.