Cet article fournit des instructions pour décider si vous devez écrire une application UWP ou une application de bureau Windows pour communiquer avec un périphérique USB.
Windows fournit des ensembles d’API que vous pouvez utiliser pour écrire des applications qui communiquent avec des périphériques USB personnalisés. L’API effectue des tâches courantes liées à l’USB, telles que la recherche de l’appareil, les transferts de données.
Dans ce contexte, un appareil personnalisé signifie qu’il s’agit d’un appareil pour lequel Microsoft ne fournit pas de pilote de classe intégré. Au lieu de cela, vous pouvez installer WinUSB (Winusb.sys) en tant que pilote de périphérique.
Choix d’un modèle de programmation
Si vous installez Winusb.sys, voici les options du modèle de programmation :
Avant Windows 8.1, les applications qui communiquent via Winusb.sys, étaient des applications de bureau écrites à l’aide de WinUSB Functions. Dans Windows 8.1, le jeu d’API a été étendu. Pour plus d’informations sur le développement d’applications Windows, consultez Développer pour Windows.
La stratégie de choix du meilleur modèle de programmation dépend de différents facteurs.
Votre application communiquera-t-elle avec un périphérique USB interne ?
Les API sont principalement conçues pour accéder aux périphériques. L’API peut également accéder aux périphériques USB internes du PC. Toutefois, l’accès aux périphériques USB internes d’un PC à partir d’une application UWP est limité à une application privilégiée qui est explicitement déclarée dans les métadonnées de l’appareil par l’OEM pour ce PC.
Votre application communiquera-t-elle avec des points de terminaison isochroneuses USB ?
Si votre application transmet des données vers ou depuis des points de terminaison isochroques de l’appareil, vous devez écrire une application de bureau Windows. Dans Windows 8.1, de nouvelles fonctions WinUSB ont été ajoutées au jeu d’API qui permet à une application de bureau d’envoyer des données à des points de terminaison isochroques et de les recevoir.
Votre application est-elle de type « panneau de configuration » ?
Les applications UWP sont des applications par utilisateur et n’ont pas la possibilité d’apporter des modifications en dehors de l’étendue de chaque application. Pour ces types d’applications, vous devez écrire une application de bureau Windows.
La classe de périphérique USB est-elle prise en charge par les applications UWP ?
Écrivez une application UWP si votre appareil appartient à l’une de ces classes d’appareils.
name:cdcControl, classId:02 * *
name:physical, classId:05 * *
name:personalHealthcare, classId:0f 00 00
name:activeSync, classId:ef 01 01
name:palmSync, classId:ef 01 02
name:deviceFirmwareUpdate, classId:fe 01 01
name:irda, classId:fe 02 00
name:measurement, classId:fe 03 *
name:vendorSpecific, classId:ff * *
Notes
Si votre appareil appartient à la classe DeviceFirmwareUpdate, votre application doit être une application privilégiée.
Si votre appareil n’appartient pas à l’une des classes d’appareils précédentes, écrivez une application de bureau Windows.
Conditions requises pour le pilote
Conditions requises pour le pilote
Application UWP
Application de bureau Windows
Pilote de fonction
Winusb.sys fourni par Microsoft (pilote en mode noyau).
Winusb.sys fourni par Microsoft (pilote en mode noyau).
Pilote de filtre
Si des pilotes de filtre sont présents, l’accès est limité aux applications privilégiées. L’application est déclarée en tant qu’applications privilégiées dans les métadonnées d’appareil par l’OEM.
Le pilote de filtre peut être présent dans la pile de périphériques en mode noyau tant qu’il ne bloque pas l’accès à Winusb.sys.
Kit de développement logiciel (SDK) Microsoft Windows pour Windows 8.1
Utilisez le modèle d’application WinUSB inclus avec Visual Studio (Ultimate ou Professionnel) et le Kit de pilotes Windows (WDK) 8 ou version ultérieure.
Pour les transferts isochrone, Visual Studio 2013 avec le Kit de pilotes Windows (WDK) 8.1 ou version ultérieure.
Les développeurs Windows disposent de différentes options lorsqu’il s’agit de créer des applications s’exécutant sur Windows. Ce module présente les infrastructures d’interface utilisateur Windows disponibles pour le développement Windows. Il fournit également des conseils sur la façon de choisir la meilleure infrastructure pour votre application.