Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez le pilote USB fourni par Microsoft (Usbser.sys) pour vos périphériques de contrôle de la classe de périphériques de communication et de communication (CDC). Utilisez les pilotes inclus dans Windows dans la mesure du possible.
Important
Cet article concerne les fabricants d’appareils de contrôle CDC. Si vous êtes un client qui rencontre des problèmes USB, consultez Résoudre les problèmes de USB-C dans Windows
Usbser.sys est implémenté à l’aide du Kernel-Mode Driver Framework. Le pilote prend en charge les fonctionnalités plug-and-play et de gestion de l’alimentation telles que la suspension sélective USB.
Les applications de plateforme Windows universelle (UWP) peuvent utiliser les API fournies par l’espace de noms Windows.Devices.SerialCommunication , ce qui permet aux applications de communiquer avec des appareils CDC.
installation de Usbser.sys
Chargez le pilote intégré fourni par Microsoft (Usbser.sys) pour vos communications et votre périphérique de contrôle CDC.
Remarque
Si vous essayez d’installer un pilote de classe de périphérique USB inclus dans Windows, vous n’avez pas besoin de télécharger le pilote. Windows installe automatiquement ces pilotes. Si Windows n’installe pas le pilote, contactez le fabricant de l’appareil. Pour obtenir la liste des pilotes de classe de périphérique USB inclus dans Windows, consultez les pilotes de classe de périphérique USB inclus dans Windows.
Usbser.inf se trouve dans le %Systemroot%\INF répertoire. Ce fichier d’informations d’installation (INF) charge Usbser.sys en tant qu’objet d’appareil fonctionnel (FDO) dans la pile d’appareils. Si votre appareil appartient à la classe d'appareils de communication et de contrôle CDC, Usbser.sys se charge automatiquement. Vous n’avez pas besoin d’écrire votre propre fichier INF pour référencer le pilote. Windows charge le pilote en fonction d’une correspondance d’ID compatible, similaire à d’autres pilotes de classe de périphérique USB inclus dans Windows.
USB\Class_02
USB\Class_02&SubClass_02
Pour charger Usbser.sys automatiquement, définissez le code de classe sur 02 et le code de sous-classe sur 02 dans le descripteur d’appareil. Avec cette approche, vous n’avez pas besoin de distribuer des fichiers INF pour votre appareil, car le système utilise Usbser.inf. Pour plus d’informations, consultez définitions de classes pour les appareils de communication 1.2.
Si votre appareil spécifie le code de classe 02, mais qu’un code de sous-classe autre que 02, Usbser.sys ne se charge pas automatiquement. Le gestionnaire Plug-and-Play tente de trouver un pilote. Si Windows ne trouve pas de pilote approprié, il se peut que l’appareil ne dispose pas d’un pilote chargé. Vous devrez peut-être charger votre propre pilote ou écrire un fichier INF qui référence un autre pilote in-box.
Si votre appareil spécifie des codes de classe et de sous-classe de 02 et que vous souhaitez charger un autre pilote au lieu de Usbser.sys, écrivez un fichier INF. Dans le fichier INF, spécifiez l’ID matériel de l’appareil et le pilote à installer.
Configurer l’interruption sélective pour Usbser.sys
Usbser.sys prend en charge la suspension sélective USB. Ce pilote permet au périphérique USB-à-série attaché d’entrer un état d’alimentation faible lorsqu’il n’est pas utilisé, tandis que le système reste dans l’état S0. Lorsque la communication avec l’appareil reprend, l’appareil quitte l’état de suspension et reprend l’état de travail. La fonctionnalité est désactivée par défaut, mais peut être activée et configurée en définissant l’entrée IdleUsbSelectiveSuspendPolicy sous cette clé de Registre :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<hardware id>\<instance id>\Device Parameters
Pour configurer les fonctionnalités de gestion de l’alimentation de Usbser.sys, définissez le paramètre IdleUsbSelectiveSuspendPolicy sur :
| Valeur | Comportement |
|---|---|
0x00000001 |
Entrez une suspension sélective en cas d’inactivité, c’est-à-dire lorsqu’il n’existe aucun transfert de données actif vers ou depuis l’appareil. |
0x00000000 |
Entrez en suspension sélective uniquement lorsqu'il n'y a pas de poignées ouvertes sur l'appareil. |
Ajoutez cette entrée de l’une des deux manières suivantes :
Écrivez un INF qui référence l'INF d'installation et ajoutez l'entrée de Registre dans la section HW.AddReg.
Décrivez l'entrée de registre dans un descripteur de fonctionnalité du système d'exploitation pour les propriétés étendues. Ajoutez une section de propriété personnalisée qui définit le champ bPropertyName sur une chaîne Unicode :
IdleUsbSelectiveSuspendPolicy. Définissez wPropertyNameLength sur 62 octets. Définissez le champ bPropertyData sur0x00000001ou0x00000000. Les valeurs de propriété sont stockées sous forme d'entiers 32 bits little-endian.Pour plus d’informations, consultez les descripteurs de système d’exploitation Microsoft.
Développer des applications Windows pour un périphérique CDC USB
Une application Windows envoie des requêtes à Usbser.sys à l’aide de l’espace de noms Windows.Devices.SerialCommunication . L’espace de noms définit les classes Windows Runtime qui communiquent avec un périphérique CDC USB via un port série ou une abstraction d’un port série. Les classes vous permettent de découvrir des appareils série, de lire et d’écrire des données et de contrôler des propriétés spécifiques à la série pour le contrôle de flux, telles que la définition du débit baud et des états de signal.