Préparation de l’appareil Mo
Cette rubrique décrit les procédures permettant de s’assurer qu’un appareil Mo est accessible et prêt à être utilisé pour les activités liées au réseau avant que le service MB ne procède à la configuration des connexions de données. L’appareil est prêt à être utilisé lorsque l’abonnement utilisateur a été activé et que les informations relatives à l’abonné sont stockées sur l’appareil ou sur le module d’identité de l’abonné (sim carte)
Le service MB part du principe qu’un pilote miniport initialise automatiquement le matériel de son appareil Mo (pile radio, carte SIM ou circuits équivalents) une fois que le système l’a chargé, sans attendre aucune instruction du service.
Les pilotes miniport définissent l’état prêt initial de leur appareil Mo sur WwanReadyStateOff. Au fur et à mesure de l’initialisation, les pilotes miniport doivent envoyer des notifications d’événement pour informer le service MB des modifications apportées à l’état prêt de leur appareil.
Les pilotes miniport doivent arrêter le processus d’initialisation s’ils rencontrent des conditions d’erreur. Une fois la condition d’erreur effacée, les pilotes miniport peuvent reprendre le processus d’initialisation jusqu’à ce que leur appareil ait atteint l’état prêt WwanReadyStateInitialized .
Voici des exemples de scénarios d’erreur :
Si l’appareil nécessite une carte SIM et que le pilote miniport détecte qu’aucune carte SIM n’est présente, le pilote miniport doit envoyer une notification d’événement prêt à l’état prêt WwanReadyStateSimNotInserted, et le pilote miniport doit rester dans cet état jusqu’à ce que l’utilisateur insère une carte SIM dans l’appareil.
Si l’appareil nécessite une carte SIM et que le pilote miniport ne peut pas lire l’carte SIM qui a été inséré (par exemple, un U-RIM est inséré dans un appareil GSM ou un USIM est inséré dans un appareil CDMA) ou si le carte SIM n’est pas compatible avec l’appareil (par exemple, un USIM 3G est inséré dans un appareil 2G, qui ne peut pas interpréter le format USIM), le pilote miniport doit envoyer une notification d’événement prêt WwanReadyStateBadSim, et le pilote miniport doit rester dans cet état jusqu’à ce que l’utilisateur insère une carte SIM correcte dans l’appareil.
Si l’appareil est verrouillé par le code confidentiel (pour les appareils qui utilisent des cartes SIM) ou par un mot de passe (pour les appareils qui n’utilisent pas de cartes SIM) qui empêche la progression de l’initialisation de l’appareil, le pilote miniport doit envoyer une notification d’événement prêt WwanReadyStateDeviceLocked , et le pilote miniport doit rester dans cet état jusqu’à ce que l’utilisateur entre le code pin ou le mot de passe correct.
Si le pilote miniport détecte que l’activation du service est nécessaire pour continuer, le pilote miniport doit envoyer une notification d’événement prêt WwanReadyStateNotActivated , et il doit rester dans cet état jusqu’à ce que le service ait été activé. Il s’agit d’un comportement classique pour les appareils CDMA dans Amérique du Nord.
Si le pilote miniport rencontre des défaillances autres que celles mentionnées précédemment, le pilote miniport doit envoyer une notification d’événement prêt WwanReadyStateFailure , et il doit rester dans cet état jusqu’à ce que le problème ait été identifié et corrigé.
N’oubliez pas que le service MB ne suppose pas que les pilotes miniports peuvent détecter toutes ces erreurs. Le service ne suppose pas non plus l’ordre dans lequel les pilotes miniports détectent ces conditions d’erreur. Toutefois, il est préférable d’implémenter les scénarios d’erreur dans l’ordre indiqué précédemment.
Jusqu’à ce qu’un pilote miniport envoie une notification d’événement prêt WwanReadyStateInitialized , le service ne poursuit pas les activités liées au réseau tant que le problème n’a pas été identifié et corrigé. Toutefois, le service peut toujours envoyer des OID au pilote miniport.
Les pilotes miniport n’ont pas besoin d’attendre que le sous-système SMS soit prêt avant de signaler l’état prêt WwanReadyStateInitialized . Au lieu de cela, les pilotes miniport doivent envoyer une notification OID_WWAN_SMS_CONFIGURATION distincte lorsque le sous-système SMS est prêt à envoyer et à recevoir des messages SMS.
Prise en charge du mode d’urgence
Si le pilote miniport indique qu’il prend en charge les services d’appel d’urgence lors du traitement OID_WWAN_READY_INFO le pilote miniport doit définir le membre EmergencyMode de la structure WWAN_READY_INFO sur WwanEmergencyModeOn. Dans ce cas, le pilote miniport doit continuer à envoyer des notifications d’inscription au service MB, mais le service n’appelle pas de fonctionnalités de configuration automatique associées.
Les pilotes Miniport peuvent spécifier qu’ils prennent en charge les services d’appel d’urgence, même dans les scénarios où ils détectent que la carte SIM n’est plus valide, peut-être parce que l’abonnement n’est pas payé ou que le service a été désactivé parce que l’appareil a été signalé volé.
Initialisation du pilote mo miniport
Le diagramme suivant représente le processus effectué pour déterminer si l’interface est une interface Mo qualifiée et pour collecter des informations sur les fonctionnalités de l’appareil. Ces étapes sont effectuées pour chaque interface Mo énumérée au démarrage du service Mo, ainsi que pour chaque nouvelle arrivée d’interface pendant l’exécution du service. Les étiquettes en gras représentent les identificateurs OID ou le contrôle de flux transactionnel. Les étiquettes dans le texte normal représentent les indicateurs importants au sein de la structure OID.
Pour initialiser un pilote miniport Mo, procédez comme suit :
Le service Mo envoie une requête synchrone (bloquante) OID_GEN_PHYSICAL_MEDIUM requête pour identifier le type de l’appareil Mo. Le pilote miniport répond avec NdisPhysicalMediumWirelessWan pour indiquer que le périphérique MB est un appareil WWAN.
Le service MO envoie une requête synchrone (bloquante) OID_GEN_MEDIA_SUPPORTED requête au pilote miniport pour identifier le type de support utilisé par l’appareil Mo. Le pilote miniport répond par NdisMedium802_3 pour indiquer qu’il utilise l’émulation Ethernet.
Le service MB envoie une requête de requête synchrone (bloquante) OID_WWAN_DRIVER_CAPS au pilote miniport pour identifier la version du modèle de pilote prise en charge par le pilote miniport. Le pilote miniport répond avec WWAN_VERSION.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_DEVICE_CAPS requête au pilote miniport pour identifier les fonctionnalités de l’appareil Mo. Le conducteur de miniport répond avec un accusé de réception provisoire de la demande et il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_DEVICE_CAPS au service MO qui indique les fonctionnalités du périphérique Mo pris en charge par le pilote miniport. Par exemple, si le pilote miniport prend en charge un appareil GSM, il doit spécifier la valeur WwanCellularClassGsm dans le membre DeviceCaps.WwanCellularClass de la structure NDIS_WWAN_DEVICE_CAPS . Si le pilote miniport prend en charge un périphérique CDMA, il doit spécifier WwanCellularClassCdma.
Initialisation de SIM-Locked appareil GPRS avec un contexte User-Defined
Le diagramme suivant illustre le scénario dans lequel l’utilisateur entre un code CONFIDENTIEL SIM et configure manuellement une chaîne de nom de point d’accès. Les étiquettes en gras sont des identificateurs OID ou un contrôle de flux transactionnel, et les étiquettes du texte normal sont les indicateurs importants de la structure OID.
Pour initialiser un appareil GSM avec PIN1 verrouillé, implémentez les étapes suivantes :
Le service MB envoie une requête de requête asynchrone (non bloquante) OID_WWAN_READY_INFO au pilote miniport pour identifier l’état prêt de l’appareil. Le conducteur du miniport répond par un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et qu’il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_FAILURE au service MO pour indiquer au service Mo que le module d’identité de l’abonné (SIM) est verrouillé.
Le service MB envoie une requête de requête asynchrone (non bloquante) OID_WWAN_PIN au pilote miniport. Le conducteur du miniport répond par un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et qu’il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_SUCCESS au service MB.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_PIN définie au pilote miniport. Le conducteur du miniport répond par un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et qu’il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_SUCCESS au service MB.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_READY_INFO au service MO qui indique au service Mo que l’état de l’appareil Mo est WwanReadyStateInitialized.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_REGISTER_STATE requête au pilote miniport. Le conducteur du miniport répond par un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande, et il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_SUCCESS au service MB.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_REGISTER_STATE au service MB.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_HOME_PROVIDER requête au pilote miniport. Le conducteur du miniport répond par un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande, et il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_SUCCESS au service MB.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_REGISTER_STATE au service MB.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_PACKET_SERVICE au pilote miniport. Le conducteur du miniport répond par un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et qu’il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_PACKET_SERVICE au service MB.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_PROVISIONED_CONTEXTS requête au pilote miniport. Le conducteur du miniport répond par un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande, et il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS au service MB.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_PROVISIONED_CONTEXTS définie au service MB. Le conducteur du miniport répond par un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande, et il enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie NDIS_STATUS_WWAN_SUCCESS au service MB.
Voir aussi
Pour plus d’informations sur la préparation des appareils, consultez OID_WWAN_READY_INFO.
Pour plus d’informations sur l’initialisation de l’appareil avec des contextes provisionnés, consultez Opérations de contexte provisionnés en Mo.