Opérations de contexte provisionné MB
L’approvisionnement est vital pour les appareils à connexion cellulaire car chaque opérateur mobile a des configurations APN différentes pour son réseau. Les configurations APN peuvent généralement être divisées en deux catégories :
- Configurations APN connues du système d’exploitation, car des applications ou des clients au-dessus du système d’exploitation ont besoin de ces connexions.
- Configurations APN qui ne sont pas connues du système d’exploitation, car elles sont utilisées en interne par le modem pour les connexions qui ne sont pas exploitées par le système d’exploitation et ses clients.
Dans l’idéal, le modem devrait uniquement stocker les configurations APN que le système d’exploitation n’a pas à connaître. Toutefois, les partenaires IHV et OEM ont généralement fourni les API Internet et Achat, configurations connues du système d’exploitation, dans le modem également. Avant Windows 10, version 1703, Windows lit uniquement les configurations APN Internet et Achat à partir du modem pour établir des connexions Internet. À partir de Windows 10, version 1703, il pourrait y avoir des cas supplémentaires dans lesquels la configuration APN du modem devrait être gérée par Windows, en particulier s’il y a des clients dans le système d’exploitation tels que les paramètres utilisateur ou OMA-DM qui veulent changer la configuration cellulaire. Cela peut également affecter la configuration APN du modem. Par exemple, il peut y avoir une pile IMS dans le modem qui utilise l’APN IMS pour les SMS via IMS. En règle générale, ces connexions ne sont pas exposées au système d’exploitation, mais dans certains cas, il faudra peut-être modifier la configuration APN IMS. Cette modification peut être effectuée via le système d’exploitation. Pour prendre en charge cela, à compter de Windows 10, version 1703, le système d’exploitation peut configurer différents types d’APN dans le modem.
Le MBIM 1.0 du forum USB et le NDIS Microsoft disposent chacun d’un CID et d’un OID pour permettre au système d’exploitation de définir et d’interroger les configurations APN dans le modem. Pour MBIM 1.0, il effectue cette opération via Mo IM_CID_PROVISIONED_CONTEXT tandis que pour NDIS, il le fait via OID_WWAN_PROVISIONED_CONTEXTS. Cependant, les CID et OID existants n’ont pas été conçus avec des indications claires sur la manière dont le modem est censé se comporter dans diverses situations telles qu’un cycle d’alimentation ou un changement de carte SIM. À l’avenir, les périphériques qui souhaitent prendre en charge la configuration du système d’exploitation et la mise à jour des contextes fournis par le modem devront implémenter la nouvelle version du CID et de l’OID dans Windows 10, version 1703. Pour assurer la compatibilité ascendante, les IHV/OEM qui souhaitent prendre en charge du nouveau matériel sur des versions du système d’exploitation antérieures à la version 1703 devront continuer à prendre en charge les MBIM_CID_PROVISIONED_CONTEXT et OID_WWAN_PROVISIONED_CONTEXTS existants. À partir de Windows 10, version 1703, si l’appareil prend en charge la nouvelle version du CID et de l’OID, le système d’exploitation utilise uniquement la version la plus récente de la commande pour interroger et définir la configuration du contexte APN dans le modem.
Mise à jour de l’interface MB pour les opérations de contexte approvisionné
Si MBIM dispose d’une commande permettant de récupérer et de remplacer les contextes stockés dans le modem, il ne dispose pas d’un champ permettant de « désactiver » ou « activer » un profil. Par conséquent, le MBIM_CID_PROVISIONED_CONTEXT existant doit être mis à jour pour Windows 10, version 1703 pour inclure cette fonctionnalité. Étant donné que MBIM n’a pas de mécanisme de contrôle des versions, un nouveau CID propre à MSFT est défini comme MBIM_CID_MS_PROVISIONED_CONTEXT_V2.
Nom du service = Basic Connect Extensions
UUID = UUID_BASIC_CONNECT_EXTENSIONS
Valeur UUID = 3d01dcc5-fef5-4d05-0d3abef7058e9aaf
CID | Code de commande | Minimum OS Version |
---|---|---|
MBIM_CID_MS_PROVISIONED_CONTEXT_V2 | 1 | Windows 10 version 1703 |
MBIM_CID_MS_PROVISIONED_CONTEXT_V2
Description
Bien que MBIM 1.0 ait défini MBIM_CID_PROVISIONED_CONTEXT pour que le système d’exploitation et ses clients supérieurs gèrent les contextes provisionnés dans le modem, auparavant, Windows se contentait d’interroger le contexte dans le modem mais ne le définissait pas à partir du système d’exploitation. À partir de Windows 10, version 1703, il est de plus en plus nécessaire que le système d’exploitation puisse configurer les contextes du modem. Par exemple, s’il existe une pile IMS dans le modem opaque au système d’exploitation, ce dernier doit être en mesure de spécifier l’APN IMS que le modem doit utiliser. Comme chaque IHV de modem peut avoir sa propre façon de stocker les contextes dans le modem, il est impossible pour le système d’exploitation de gérer les profils au niveau du ContextId comme MBIM_CID_PROVISIONED_CONTEXT pourrait le suggérer. Du point de vue du système d’exploitation, il est plus important de prescrire le contexte à utiliser pour chaque type de contexte. Pour revenir à l’exemple IMS, quel que soit le nombre de contextes provisionnés existants dans le modem, si le système d’exploitation définit un contexte possédant MBIM_CONTEXT_TYPE = IMS, tout le trafic IMS initié par le modem ne doit être tenté que sur ce contexte.
MBIM 1.0 spécifie que MBIM_CID_PROVISIONED_CONTEXT peut uniquement appeler une requête sur les contextes qui correspondent à l’ID du fournisseur (paire MCC/MNC) de la carte SIM insérée. Pour définir des requêtes, MBIM_CID_PROVISIONED_CONTEXT peut spécifier l’ID du fournisseur de contexte qu’il souhaite stocker. MBIM_CID_MS_PROVISIONED_CONTEXT_V2 spécifie un comportement similaire mais différent de MBIM 1.0. Pour chaque requête, le système d’exploitation continue de s’attendre à ce que le modem renvoie uniquement des contextes qui correspondent à l’ID du fournisseur de la carte SIM insérée. Pour Set, la commande n’activera plus le système d’exploitation pour définir des contextes qui ne correspondent pas à l’ID du fournisseur actuel dans la carte SIM. La requête Set est censée créer un contexte pour l’identifiant actuel du fournisseur de la carte SIM présentée. Par exemple, l’utilisateur bascule de la SIM 1 à la SIM 2, puis revient à la SIM 1. Lors du premier échange de carte SIM, le modem devrait résoudre tous ses contextes avant de charger le contexte de la carte SIM 2. Lorsque l’utilisateur revient à la SIM 1, la configuration par défaut de la SIM 1 devrait être restaurée. Il n’est pas prévu que le modem enregistre la configuration du runtime lors des permutations de SIM.
Le schéma suivant présente un flux d’exemple lorsqu’un utilisateur passe d’une carte SIM à une autre, puis revient à la première.
Les OEM et les IHV qui ont préconfiguré le modem doivent conserver la configuration d’usine d’origine pour le cas où le système d’exploitation ou l’utilisateur souhaiterait rétablir les paramètres du contexte d’origine dans le modem. Seuls les contextes d’usine d’origine de l’ID du fournisseur de la carte SIM insérée doivent être restaurés. Les contextes préconfigurés d’usine ne doivent jamais être remplacés par la configuration du système d’exploitation. Le schéma suivant est un flux d’exemple pour le cas où un utilisateur choisit de restaurer les paramètres d’usine :
On s’attend à ce que le modem ne réponde pas aux demandes Requête ou Définition lorsque la carte SIM est absente, verrouillée ou que l’identifiant du fournisseur est inaccessible. Le modem ne doit avoir qu’un seul contexte par CONTEXT_TYPE par ID de fournisseur. Si l’IHV ou l’OEM décide de préconfigurer les contextes dans le modem, il doit impérativement s’assurer qu’ils sont configurés correctement pour chaque fournisseur pour lequel il choisit de le faire. Dans le cas où la carte SIM insérée n’a aucun contexte préconfiguré par l’IHV, le modem ne doit pas avoir de contextes sans la configuration du système d’exploitation. Les IHV et les OEM doivent s’assurer que MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceModemProvisioned, afin que le système d’exploitation utilise le contexte du modem pour la connexion, s’il existe, et ne le remplace pas à partir de la base de données APN de Windows.
La manière dont les cartes du modem gèrent le contexte et le présentent en retour via le MBIM_CID_PROVISIONED_CONTEXT existant dépend de chaque IHV et n’entre pas dans la portée de la présente documentation.
La nouvelle commande MBIM_CID_MS_PROVISONED_CONTEXT_V2 est presque identique à la commande MBIM_CID_PROVISIONED_CONTEXT existante de MBIM 1.0, mais avec plusieurs ajouts. La première permet au système d’exploitation d’activer ou de désactiver le contexte associé à un type de contexte dans le modem. Lorsque le contexte est désactivé dans le modem, celui-ci est censé ne pas utiliser le contexte stocké pour toute connexion avec le réseau, même ceux qui ne sont pas portés à la connaissance du système d’exploitation. Si le système d’exploitation demande une connexion correspondant à un contexte désactivé dans le modem, ce dernier doit rejeter la demande immédiatement sans envoyer de signal au réseau. Le processus de mise en correspondance doit correspondre à tous les champs de la structure MBIM_MS_CONTEXT_V2.
La structure MBIM_CONTEXT_IP_TYPE de MBIM 1.0 est utilisée uniquement pour MBIM_CID_CONNECT. Dans MBIM_CID_MS_PROVISIONED_CONTEXT_V2, Microsoft a ajouté le type IP comme l’un des paramètres de chaque contexte. Le modem doit signaler MBIMContextIPTypeDefault s’il n’est pas configuré pour le contexte donné.
Dans Windows 10, version 1703, avec un nouveau matériel prenant en charge MBIM_CID_MS_PROVISIONED_CONTEXT_V2, le MBIM_CID_PROVISIONED_CONTEXT hérité ne sera pas utilisé à partir de composants internes. S’il existe d’autres composants client/système d’exploitation hérités qui envoient le MB IM_CID_PROVISIONED_CONTEXT, le modem est censé renvoyer les résultats, comme c’était le cas dans les versions de Windows antérieures à Windows 10, version 1703.
Requête
MBIM_MS_PROVISIONED_CONTEXTS_INFO est renvoyé à partir de messages Requête et Définition complets dans InformationBuffer.
Pour Requête, InformationBuffer a la valeur Null.
Définition
Pour Définition, InformationBuffer contient une structure MBIM_MS_SET_PROVISIONED_CONTEXT_V2. Dans l’opération Set, comme chaque IHV de modem peut avoir ses propres méthodes de gestion du stockage des contextes, le système d’exploitation ne spécifie plus le champ ContextId et attend du modem qu’il mette en correspondance les contextes avec l’emplacement approprié. Lorsque le système d’exploitation définit des contextes, il s’attend à ce que le modem l’utilise pour toutes les connexions qui correspondent au MBIM_CONTEXT_TYPE du contexte donné. Si le MBIM_CONTEXT_TYPE n’est pas reconnu par le modem, il doit toujours le stocker même s’il ne peut pas s’y connecter.
Événement non sollicité
L’événement InformationBuffer contient une structure MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2. Dans certains cas, la liste des contextes provisionnés est mise à jour par le réseau via OTA (Over-The-Air) ou par le SMS (Short Message Service) qui ne passe pas par la commande MBIM_CID_MS_PROVISIONED_CONTEXT_V2 du système d’exploitation. La fonction doit mettre à jour la liste des contextes provisionnés et des balises MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceOperatorProvisioned en conséquence. Ensuite, les fonctions doivent informer l’hôte des mises à jour à l’aide de cet événement avec la liste mise à jour.
Paramètres
Opération | Définissez | Requête | Notification |
---|---|---|---|
Commande | MBIM_SET_MS_PROVISIONED_CONTEXT_V2 | Non applicable | Non applicable |
Response | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 |
Structures de données
Requête
La valeur de l’InformationBuffer doit être NULL et InformationBufferLength doit être égal à zéro.
Définissez
La structure de données MBIM_SET_MS_PROVISIONED_CONTEXT_V2 suivante doit être utilisée dans l’InformationBuffer.
Décalage | Taille | Champ | Type | Description |
---|---|---|---|---|
0 | 4 | Opération | MBIM_MS_CONTEXT_OPERATIONS | Spécifie le type d’opération pour lequel la commande SET est utilisée. Si la valeur est MbimMsContextOperationDelete, le contexte du MBIM_CONTEXT_TYPES spécifié doit être supprimé et tous les autres champs de MBIM_SET_MS_PROVISIONED_CONTEXT_V2 ignorés. Si la valeur est MbimMsContextOperationRestoreFactory, tous les contextes créés ou modifiés par le système d’exploitation doivent être supprimés, les contextes préconfigurés par défaut doivent être chargés et tous les autres champs de MBIM_SET_MS_PROVISIONED_CONTEXT_V2 ignorés. |
4 | 16 | ContextType | MBIM_CONTEXT_TYPES | Spécifie le type de contexte représenté. Par exemple, connectivité Internet, VPN (connexion à un réseau d’entreprise) ou VoIP (voix sur IP). Pour en savoir plus, consultez le tableau MBIM_CONTEXT_TYPES. |
20 | 4 | IPType | MBIM_CONTEXT_IP_TYPES | Spécifie le type de contexte représenté. Par exemple, connectivité Internet, VPN (connexion à un réseau d’entreprise) ou VoIP (voix sur IP). Pour en savoir plus, consultez le tableau MBIM_CONTEXT_IP_TYPES. |
24 | 4 | Activer | MBIM_MS_CONTEXT_ENABLE | Spécifie si le contexte peut être utilisé par le modem. S’il est défini sur MbimMsContextDisabled, toute demande de connexion du système d’exploitation qui correspond au contexte doit être rejetée sans que le réseau en soit informé. Pour en savoir plus, consultez le tableau MBIM_MS_CONTEXT_ENABLE. |
28 | 4 | Itinérant | MBIM_MS_CONTEXT_ROAMING_CONTROL | Spécifie si l’itinérance est autorisée ou non pour ce contexte. Pour en savoir plus, consultez le tableau MBIM_MS_CONTEXT_ROAMING_CONTROL. |
32 | 4 | MediaType | MBIM_MS_CONTEXT_MEDIA_TYPE | Spécifie le type de transport de média pour lequel le contexte est utilisé. Pour en savoir plus, consultez le tableau MBIM_MS_CONTEXT_MEDIA_TYPE. |
36 | 4 | Source | MBIM_MS_CONTEXT_SOURCE | Spécifie la source de création du contexte. Pour en savoir plus, consultez le tableau MBIM_MS_CONTEXT_SOURCE. |
40 | 4 | AccessStringOffset | DÉCALAGE | Décalage dans le tampon de données d’une chaîne, AccessString, permettant d’accéder au réseau. Pour les réseaux GSM, il s’agirait d’une chaîne APN (Nom du point d’accès) telle que « data.thephone-company.com ». Pour les réseaux CDMA, il peut s’agir d’un code de connexion spécial tel que « #777 » ou un identificateur d’accès réseau (NAI) tel que « foo@thephone-company.com ». Ce membre peut être NULL pour demander au réseau d’attribuer l’APN par défaut. Remarque : tous les réseaux ne prennent pas en charge cette convention APN NULL. Par conséquent, un échec de connexion provoqué par un APN non valide est un résultat possible. La taille de la chaîne ne doit pas dépasser 100 caractères. |
44 | 4 | AccessStringSize | TAILLE(0..200) | Taille utilisée pour AccessString. |
48 | 4 | UserNameOffset | DÉCALAGE | Décalage en octets, calculé à partir du début de cette structure jusqu’à une chaîne, UserName, qui représente le nom d’utilisateur à authentifier. La valeur de ce membre peut être NULL. |
52 | 4 | UserNameSize | TAILLE(0..510) | Taille utilisée pour UserName. |
56 | 4 | PasswordOffset | DÉCALAGE | Décalage en octets, calculé à partir du début de cette structure jusqu’à une chaîne, Password, qui représente le mot de passe utilisateur à authentifier. La valeur de ce membre peut être NULL. |
60 | 4 | PasswordSize | TAILLE(0..510) | Taille utilisée pour Password. |
64 | 4 | Compression | MBIM_COMPRESSION | Spécifie la compression à utiliser dans la connexion de données pour l’en-tête et les données. Ce membre s’applique uniquement aux appareils GSM. L’hôte définit ce membre sur MBIMCompressionNone pour les appareils CDMA. Pour en savoir plus, consultez le tableau MBIM_COMPRESSION. |
68 | 4 | AuthProtocol | MBIM_AUTH_PROTOCOL | Type d’authentification à utiliser pour l’activation PDP. Pour en savoir plus, consultez le tableau MBIM_AUTH_PROTOCOL. |
72 | 4 | DataBuffer | DATABUFFER | La mémoire tampon de données qui contient AccessString, UserName et Password. |
Les structures de données suivantes sont utilisées dans le tableau précédent.
MBIM_MS_CONTEXT_ROAMING_CONTROL spécifie la stratégie d’itinérance par contexte. Le système d’exploitation peut spécifier si le contexte donné peut être activé ou pas pendant l’itinérance. Le modem ne doit pas activer automatiquement le contexte sans intervention du système d’exploitation si l’état d’itinérance ne répond pas aux conditions spécifiées. Dans les cas où le modem ne prend pas en charge des partenaires, toutes les configurations de partenaires doivent être traitées comme équivalentes à celle du domicile.
Type | Value | Description |
---|---|---|
MbimMsContextRoamingControlHomeOnly | 0 | Indique si le contexte est uniquement autorisé à être utilisé dans le réseau domestique ou non. |
MbimMsContextRoamingControlPartnerOnly | 1 | Indique si le contexte est uniquement autorisé à être utilisé dans les réseaux d’itinérance partenaires ou non. |
MbimMsContextRoamingControlNonPartnerOnly | 2 | Indique si le contexte est uniquement autorisé à être utilisé dans les réseaux d’itinérance non partenaires ou non. |
MbimMsContextRoamingControlHomeAndPartner | 3 | Indique si le contexte est autorisé à être utilisé dans les réseaux d’itinérance partenaires et domestiques. |
MbimMsContextRoamingControlHomeAndNonPartner | 4 | Indique si le contexte est autorisé à être utilisé dans les réseaux d’itinérance non partenaires et domestiques. |
MbimMsContextRoamingControlPartnerAndNonPartner | 5 | Indique si le contexte est autorisé à être utilisé dans les réseaux d’itinérance non partenaires et partenaires. |
MbimMsContextRoamingControlAllowAll | 6 | Indique si le contexte est autorisé à être utilisé dans n’importe quelle condition d’itinérance. |
MBIM_MS_CONTEXT_MEDIA_TYPE a été ajouté pour pouvoir spécifier si le contexte est utilisé pour le réseau cellulaire ou iWLAN lorsque le déchargement Wi-Fi sera pris en charge dans les futures plateformes. Par exemple, si un contexte est défini comme cellulaire et que le modem est en train d’effectuer un déchargement Wi-Fi, il ne doit pas initier une connexion en utilisant ce contexte.
Type | Value | Description |
---|---|---|
MbimMsContextMediaTypeCellularOnly | 0 | Indique si le contexte est uniquement autorisé à être utilisé lors de l’enregistrement par voie cellulaire. |
MbimMsContextMediaTypeWifiOnly | 1 | Indique si le contexte est uniquement autorisé à être utilisé lors de l’enregistrement sur iWLAN (déchargement Wi-Fi). |
MbimMsContextMediaTypeAll | 2 | Indique si le contexte est autorisé à être utilisé lors de l’enregistrement par vois cellulaire ou Wi-Fi. |
MBIM_MS_CONTEXT_ENABLE spécifie si un contexte est activé ou désactivé.
Type | Value | Description |
---|---|---|
MbimMsContextDisabled | 0 | Le contexte provisionné est désactivé. Le modem ne doit pas permettre l’activation dans ce contexte par le système d’exploitation et lui-même. |
MbimMsContextEnabled | 1 | Le contexte provisionné est activé. Le contexte peut être activé si d’autres conditions sont remplies : par exemple, si l’itinérance n’est pas autorisée, le contexte ne doit pas être activé pendant cette dernière. |
MBIM_MS_CONTEXT_SOURCE a été ajouté pour donner à la visibilité du système d’exploitation sur la façon dont le contexte du modem a été créé. Il peut ainsi se comporter correctement après diverses situations telles qu’une réinitialisation aux paramètres d’usine, afin de savoir ce qui doit être conservé et ce qui doit être ramené à l’état par défaut en fonction des diverses exigences de l’opérateur.
Type | Value | Description |
---|---|---|
MbimMsContextSourceAdmin | 0 | Le contexte a été créé par un administrateur informatique d’entreprise à partir du système d’exploitation. |
MbimMsContextSourceUser | 1 | Le contexte a été créé par l’utilisateur via les paramètres du système d’exploitation. |
MbimMsContextSourceOperator | 2 | Le contexte a été créé par l’opérateur via OMA-DM ou d’autres canaux. |
MbimMsContextSourceModem | 3 | Le contexte a été créé par l’IHV ou l’OEM qui était inclus dans le microprogramme du modem. |
MbimMsContextSourceDevice | 4 | Le contexte a été créé par la base de données APN du système d’exploitation. |
MBIM_MS_CONTEXT_OPERATIONS spécifie les opérations que le système d’exploitation peut effectuer pour configurer des contextes dans le modem.
Type | Value | Description |
---|---|---|
MbimMsContextOperationDefault | 0 | Opération par défaut incluant l’ajout ou le remplacement d’un contexte existant dans le modem. |
MbimMsContextOperationDelete | 1 | L’opération de suppression nécessite que le modem supprime un contexte existant dans ce dernier. |
MbimMsContextOperationRestoreFactory | 2 | Restaurer le contexte préconfiguré en usine pour l’ID de fournisseur de la carte SIM actuellement insérée. Tous les contextes remplacés ou créés par le système d’exploitation doivent être supprimés et remplacés. En l’absence de contexte préconfiguré par défaut du système d’exploitation pour l’ID du fournisseur de la carte SIM actuellement insérée, le contexte provisionné dans le modem doit être supprimé. |
Le MBIM_CONTEXT_TYPES d’origine de MBIM 1.0 est toujours valide. Microsoft ajoute des types de contexte supplémentaires car d’autres types de contexte ont été introduits depuis la définition de MBIM 1.0. Le tableau suivant contient la description des nouveaux types introduits. Les IHV et les OEM peuvent définir d’autres types de contexte propriétaires avec d’autres valeurs UUID uniques qui ne seront pas reconnaissables par le système d’exploitation pour ses propres besoins.
Type | Value | Description |
---|---|---|
MBIMMsContextTypeAdmin | 5f7e4c2e-e80b-40a9-a239-f0abcfd11f4b | Le contexte est utilisé à des fins administratives comme la gestion des appareils. |
MBIMMSContextTypeApp | 74d88a3d-dfbd-4799-9a8c-7310a37bb2ee | Le contexte est utilisé pour certaines applications autorisées par les opérateurs mobiles. |
MBIMMsContextTypeXcap | 50d378a7-baa5-4a50-b872-3fe5bb463411 | Le contexte est utilisé pour l’approvisionnement XCAP sur les services IMS. |
MBIMMsContextTypeTethering | 5e4e0601-48dc-4e2b-acb8-08b4016bbaac | Le contexte est utilisé pour la connexion d’un point d’accès mobile. |
MBIMMsContextTypeEmergencyCalling | 5f41adb8-204e-4d31-9da8-b3c970e360f2 | Le contexte est utilisé pour les appels d’urgence IMS. |
Response
La structure MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 suivante doit être utilisée dans l’InformationBuffer.
Décalage | Taille | Champ | Type | Description |
---|---|---|---|---|
0 | 4 | ElementCount (EC) | UINT32 | Nombre de structures MBIM_MS_CONTEXT_V2 qui suivent dans DataBuffer. |
4 | 8 * EC | MsProvisionedContextV2RefList | OL_PAIR_LIST | Le premier élément de la paire est un décalage de 4 octets en octets, calculé à partir du début (décalage 0) de cette structure MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2, vers une structure MBIM_MS_CONTEXT_V2 (pour en savoir, voir le tableau MBIM_MS_CONTEXT_V2). Le deuxième élément de la paire est une taille de 4 octets d’un pointeur vers la structure MBIM_MS_CONTEXT_V2 correspondante. |
4 + 8 * EC | DataBuffer | DATABUFFER | Tableau de structures MBIM_MS_CONTEXT_V2. |
MBIM_MS_CONTEXT_V2, utilisé dans le tableau précédent, fournit des informations sur un contexte donné.
Décalage | Taille | Champ | Type | Description |
---|---|---|---|---|
0 | 4 | ContextId | UINT32 | Un identifiant unique pour ce contexte. |
4 | 16 | ContextType | MBIM_CONTEXT_TYPES | Spécifie le type de contexte représenté. Par exemple, connectivité Internet, VPN (connexion à un réseau d’entreprise) ou VoIP (voix sur IP). Les appareils doivent spécifier MBIMContextTypeNone pour les contextes vides ou non provisionnés. Pour en savoir plus, consultez le tableau MBIM_CONTEXT_TYPES. |
20 | 4 | IPType | MBIM_CONTEXT_IP_TYPES | Pour en savoir plus, consultez le tableau MBIM_CONTEXT_IP_TYPES. |
24 | 4 | Activer | MBIM_MS_CONTEXT_ENABLE | Spécifie si le contexte peut être utilisé par le modem. S’il est défini sur MbimMsContextDisabled, toute demande de connexion du système d’exploitation qui correspond au contexte doit être rejetée sans que le réseau en soit informé. Pour en savoir plus, consultez le tableau MBIM_MS_CONTEXT_ENABLE. |
28 | 4 | Itinérant | MBIM_MS_CONTEXT_ROAMING_CONTROL | Spécifie si l’itinérance est autorisée ou non pour ce contexte. Pour en savoir plus, consultez le tableau MBIM_MS_CONTEXT_ROAMING_CONTROL. |
32 | 4 | MediaType | MBIM_MS_CONTEXT_MEDIA_TYPE | Spécifie le type de transport de média pour lequel le contexte est utilisé. Pour en savoir plus, consultez le tableau MBIM_MS_CONTEXT_MEDIA_TYPE. |
36 | 4 | Source | MBIM_MS_CONTEXT_SOURCE | Spécifie la source de création du contexte. Pour en savoir plus, consultez le tableau MBIM_MS_CONTEXT_SOURCE. |
40 | 4 | AccessStringOffset | DÉCALAGE | Décalage dans le tampon de données d’une chaîne, AccessString, permettant d’accéder au réseau. Pour les réseaux GSM, il s’agirait d’une chaîne APN (Nom du point d’accès) telle que « data.thephone-company.com ». Pour les réseaux CDMA, il peut s’agir d’un code de connexion spécial tel que « #777 » ou un identificateur d’accès réseau (NAI) tel que « foo@thephone-company.com ». Ce membre peut être NULL pour demander au réseau d’attribuer l’APN par défaut. Remarque : tous les réseaux ne prennent pas en charge cette convention APN NULL. Par conséquent, un échec de connexion provoqué par un APN non valide est un résultat possible. La taille de la chaîne ne doit pas dépasser 100 caractères. |
44 | 4 | AccessStringSize | TAILLE(0..200) | Taille utilisée pour AccessString. |
48 | 4 | UserNameOffset | DÉCALAGE | Décalage en octets, calculé à partir du début de cette structure jusqu’à une chaîne, UserName, qui représente le nom d’utilisateur à authentifier. La valeur de ce membre peut être NULL. |
52 | 4 | UserNameSize | TAILLE(0..510) | Taille utilisée pour UserName. |
56 | 4 | PasswordOffset | DÉCALAGE | Décalage en octets, calculé à partir du début de cette structure jusqu’à une chaîne, Password, qui représente le mot de passe utilisateur à authentifier. La valeur de ce membre peut être NULL. |
60 | 4 | PasswordSize | TAILLE(0..510) | Taille utilisée pour Password. |
64 | 4 | Compression | MBIM_COMPRESSION | Spécifie la compression à utiliser dans la connexion de données pour l’en-tête et les données. Ce membre s’applique uniquement aux appareils GSM. L’hôte définit ce membre sur MBIMCompressionNone pour les appareils CDMA. Pour en savoir plus, consultez le tableau MBIM_COMPRESSION. |
68 | 4 | AuthProtocol | MBIM_AUTH_PROTOCOL | Type d’authentification à utiliser pour l’activation PDP. Pour en savoir plus, consultez le tableau MBIM_AUTH_PROTOCOL. |
72 | DataBuffer | DATABUFFER | La mémoire tampon de données qui contient AccessString, UserName et Password. |
Notification
Pour en savoir plus, consultez le tableau MBIM_MS_PROVISIONED_CONTEXT_V2.
Codes d’état
Pour les opérations de Requête et de Définition :
Code d’état | Description |
---|---|
MBIM_STATUS_READ_FAILURE | L’opération a échoué parce que l’appareil n’a pas pu récupérer les contextes provisionnés. |
MBIM_STATUS_NO_DEVICE_SUPPORT | L’opération a échoué parce que l’appareil ne prend pas en charge l’opération. |
Pour les opérations de Définition uniquement :
Code d’état | Description |
---|---|
MBIM_STATUS_INVALID_PARAMETERS | L’opération a échoué en raison de paramètres non valides. |
MBIM_STATUS_WRITE_FAILURE | L’opération a échoué parce que la demande de mise à jour a échoué. |
Initialisation d’appareils avec un contexte provisionné
Initialisation d’un appareil GPRS non verrouillé par SIM avec un contexte provisionné
Le schéma suivant représente l’expérience utilisateur optimale pour les appareils MB basés sur GSM. L’expérience prête à l’emploi ne nécessite aucune configuration utilisateur. L’appareil est supposé être configuré pour sélectionner automatiquement le réseau à inscrire. 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 dans la structure OID.
Pour initialiser un appareil GSM non verrouillé par SIM, implémentez les étapes suivantes :
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_READY_INFO au pilote de miniport pour identifier l’état prêt de l’appareil. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie une notification NDIS_STATUS_WWAN_READY_INFO au service MB qui lui indique que l’état de l’appareil MB est WwanReadyStateInitialized.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_REGISTER_STATE au pilote de miniport pour identifier l’état d’inscription de l’appareil. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie une notification NDIS_STATUS_WWAN_REGISTER_STATE au service MB qui indique que le mode d’inscription de l’appareil est WwanRegistraterModeAutomatic et son état d’inscription actuel est WwanRegisterStateSearching.
Ensuite, lorsque l’appareil est inscrit auprès d’un fournisseur réseau, le pilote de miniport envoie une notification NDIS_STATUS_WWAN_REGISTER_STATE non sollicitée au service MB qui indique que l’état d’inscription actuel de l’appareil est WwanRegisterStateHome.
L’appareil tente d’attacher le service de paquets. Lorsque l’état du service de paquets passe à attaché, le pilote de miniport envoie une notification NDIS_STATUS_WWAN_PACKET_SERVICE non sollicitée au service MB qui indique que le service de paquets est attaché et que la classe de données actuelle est WWAN_DATA_CLASS_GPRS.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_HOME_PROVIDER au pilote de miniport pour récupérer les informations du fournisseur personnel. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie une notification NDIS_STATUS_WWAN_HOME_PROVIDER au service MB qui indique les détails du fournisseur personnel.
Le service MB envoie une requête asynchrone (non bloquante) OID_WWAN_PROVISIONED_CONTEXTS au pilote de miniport pour récupérer la liste des contextes provisionnés. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie une notification NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS au service MB qui contient une liste de structures WWAN_CONTEXT.
Le service MB envoie une requête de définition asynchrone (non bloquante) OID_WWAN_CONNECT au pilote de miniport pour activer le contexte PDP (Packet Data Protocol). Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote miniport envoie une notification NDIS_STATUS_WWAN_CONTEXT_STATE au service MB qui indique que le contexte PDP est activé.
Le pilote miniport envoie une notification NDIS_STATUS_LINK_STATE pour indiquer que l’état de connexion du média est MediaConnectStateConnected.
Initialisation d’un appareil de paquet CDMA avec un contexte provisionné
Le schéma suivant illustre l’expérience utilisateur optimale pour les appareils CDMA. L’expérience prête à l’emploi ne nécessite pas de configuration utilisateur. Ce scénario suppose que le compte CDMA n’a pas été activé. Contrairement aux appareils GSM, un appareil CDMA démarre automatiquement l’inscription auprès du réseau une fois l’activation terminée. 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 dans la structure OID.
Pour initialiser un appareil de paquets basé sur CDMA avec un contexte provisionné, implémentez les étapes suivantes :
Le service MB envoie un OID_WWAN_READY_INFO asynchrone (non bloquant) au pilote de miniport. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie NDIS_STATUS_WWAN_FAILURE au service MB.
Le service MB envoie un OID_WWAN_SERVICE_ACTIVATION asynchrone (non bloquant) au pilote de miniport. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie NDIS_STATUS_WWAN_SUCCESS au service MB.
Le pilote de miniport envoie NDIS_STATUS_WWAN_REGISTER_STATE au service MB.
Le pilote de miniport envoie NDIS_STATUS_WWAN_REGISTER_STATE au service MB.
Le pilote de miniport envoie NDIS_STATUS_WWAN_PACKET_SERVICE au service MB.
Le service MB envoie un OID_WWAN_HOME_PROVIDER asynchrone (non bloquant) au pilote de miniport. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie NDIS_STATUS_WWAN_SUCCESS au service MB.
Le service MB envoie un OID_WWAN_SERVICE_CONTEXTS asynchrone (non bloquant) au pilote de miniport. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie NDIS_STATUS_WWAN_SUCCESS au service MB.
Le service MB envoie un OID_WWAN_SERVICE_CONTEXTS asynchrone (non bloquant) au pilote de miniport. Le pilote de miniport répond avec un accusé de réception provisoire (NDIS_STATUS_INDICATION_REQUIRED) qu’il a reçu la demande et enverra une notification avec les informations demandées à l’avenir.
Le pilote de miniport envoie NDIS_STATUS_WWAN_SUCCESS au service MB.
Le pilote de miniport envoie NDIS_STATUS_LINK_STATE au service MB.