Détails de la solution de morphing d’identité MB
Exigences de configuration
L’ordre des fonctions entre les transitions dans Windows 8 doit être conservé. Par exemple, si MBIM est la troisième fonction dans Windows-8-Configuration, il doit également s’agir de la troisième fonction dans IHV-NCM-2.0-Configuration.
Windows-7-Configuration
Windows-7-Configuration doit être la première configuration de l’appareil de morphing. Cette configuration doit avoir la fonction de stockage de masse comme l’une des fonctions. Windows 8 ne sélectionne pas cette configuration. Dans Windows 7 et les versions antérieures de Windows, windows-7-Configuration est la configuration par défaut sélectionnée. Cette configuration est utilisée pour exposer une fonction de stockage de masse USB dans laquelle les IHVs placent leur package de pilotes, ce qui permet aux utilisateurs d’installer le pilote de l’IHV.
Windows-8-Configuration
Windows-7-Configuration expose la fonction MBIM comme l’une des fonctions sur lesquelles MBCD est chargé. Dans Windows 8, la valeur de cette configuration est utilisée dans la valeur subCompatibleID retournée à USBCCGP. USBCCGP sélectionne cette configuration lorsqu’elle est chargée. Windows-8-Configuration doit être de configuration 2, 3 ou 4. Aucune autre configuration n’est prise en charge comme Windows-8-Configuration. Cette configuration expose également la fonction de stockage de masse en tant que première fonction permettant à un utilisateur d’installer le package de pilotes de l’IHV.
IHV-NCM-2.0-Configuration
L’IHV-NCM-2.0-Configuration expose des fonctions spécifiques à IHV, ainsi que des fonctions MBIM et de stockage de masse. Cette configuration n’est pas définie ou utilisée par Windows. Le logiciel IHV, après installation par l’utilisateur, peut se transformer en cette configuration. Notez que l’ordre des fonctions dans cette configuration doit être le même que dans Windows-8-Configuration. Bien que des fonctions supplémentaires puissent être ajoutées à Windows-8-Configuration, les fonctions existantes doivent être conservées dans le même ordre.
IHV-NCM-1.0-Configuration
IHV-NCM-1.0-Configuration expose des fonctions spécifiques à IHV, ainsi que NCM 1.0 et des fonctions de stockage de masse. Cette configuration n’est pas définie ou utilisée par Windows 8. Cette configuration est utilisée uniquement dans Windows 7 et les versions antérieures de Windows après l’installation du logiciel IHV par l’utilisateur. Le logiciel IHV transforme l’appareil de morphing de Windows-7-Configuration vers cette configuration.
ID compatibles
Les ID compatibles sont des chaînes de 8 caractères ou plus petites utilisées par l’appareil pour indiquer la préférence de chargement du pilote sur Windows. Les appareils peuvent définir des ID compatibles à l’aide de descripteurs de système d’exploitation Microsoft. Les ID compatibles et sous-compatibles s’appliquent à des fonctions individuelles. Chaque configuration peut avoir un ensemble distinct d’ID compatibles, qui correspondent à l’ensemble de fonctions au sein de cette configuration. Bien que les ID compatibles et sous-compatibles s’appliquent à des fonctions individuelles, l’appareil de morphing peut avoir un ID compatible unique lorsqu’aucune configuration n’est sélectionnée. Cet ID compatible et sous-compatible s’applique logiquement à l’ensemble de l’appareil de morphing.
Chargement d’USBCCGP
Dans Windows 8, un pilote USBCCGP est requis pour sélectionner automatiquement la configuration Windows-8 sur le périphérique de morphing.
Pour charger le pilote USBCCGP, le périphérique de morphing doit signaler les ID compatibles et sous-compatibles suivants lorsqu’aucune configuration n’est sélectionnée sur le périphérique de morphing :
- Si l’appareil de morphing utilise des IAD pour regrouper des interfaces en fonctions, l’ID compatible doit être signalé comme « ALTRCFG » et l’ID sous-compatible comme numéro de windows-8-Configuration.
- Si l’appareil de morphing utilise des UFD WCM pour regrouper des interfaces en fonctions, l’ID compatible doit être signalé comme « WMCALTR » et l’ID sous-compatible comme numéro de windows-8-Configuration.
Par exemple, si Windows-8-Configuration est Configuration 3, l’ID sous-compatible est « 3 » dans les deux cas.
Morphing compatibles ID
Pendant l’énumération du périphérique USB, USBHUB interroge le périphérique de morphing pour obtenir l’ID compatible lorsqu’aucune configuration n’est sélectionnée sur l’appareil de morphing. L’appareil de morphing doit retourner l’ID compatible et sous-compatible utilisé pour charger USBCCGP, comme décrit dans Vue d’ensemble de la solution mb Identity Morphing.
Une fois qu’USBHUB a chargé USBCCGP, USBCCGP sélectionne la configuration indiquée par l’ID sous-compatible signalé précédemment. USBCCGP interroge ensuite l’ID compatible et sous-compatible une deuxième fois. À ce stade, l’appareil de morphing doit retourner les ID compatibles et sous-compatibles pour la configuration actuellement sélectionnée. Par conséquent, une fois qu’USBCCGP a chargé et sélectionné une configuration particulière, le périphérique de morphing doit transformer les ID compatibles et sous-compatibles qui sont signalés. L’appareil de morphing ne doit pas signaler les ID compatibles et sous-compatibles qui sont utilisés pour charger USBCCGP après la sélection d’une configuration.
USBHUB interroge le descripteur du système d’exploitation Microsoft à partir de l’appareil pendant l’énumération.
L’appareil retourne CompatId dans l’état non configuré. Ce CompatId est utilisé pour charger USBCCGP.
USBCCGP sélectionne la configuration signalée dans l’ID sous-compatible.
L’appareil transforme son descripteur de système d’exploitation Microsoft en fonction de la nouvelle configuration. Requêtes USBCCGP pour le descripteur de système d’exploitation Microsoft.
L’appareil ne retourne aucun CompatID. En fonction de la classe/sous-classe/protocole, USBCCGP charge USBSTOR et MBCD.