Contrôle de l’accès aux appareils

Le processus hôte du pilote UMDF s’exécute dans le contexte du compte de service local. Votre pilote peut avoir besoin d’accéder à d’autres appareils ou composants qui n’autorisent pas l’accès généralisé au compte de service local.

À compter de Windows 8, le système d’exploitation inclut un identificateur de sécurité (SID) qui identifie les pilotes UMDF. En incluant ce SID dans leurs exigences de sécurité d’appareil, les appareils ou les composants peuvent autoriser l’accès aux pilotes UMDF tout en empêchant l’accès à partir d’autres demandes provenant du compte de service local.

Le SID pour les pilotes UMDF est SDDL_USER_MODE_DRIVERS et la définition est dans sddl.h. La représentation complète de ce SID est la suivante :

S-1-5-84-0-0-0-0-0

L’abréviation de ce SID est UD. Cette abréviation est disponible à partir de Windows 8.

Un pilote externe à votre pilote UMDF peut spécifier le SID dans son fichier INF ou dans le pilote, avant de créer l’objet de périphérique.

Spécification de la sécurité des appareils dans un fichier INF

Dans le fichier INF, vous pouvez utiliser le formulaire abrégé ou le formulaire entièrement spécifié du SID.

Le formulaire abrégé est disponible à partir de Windows 8 :

HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)"   

Sur les systèmes d’exploitation antérieurs à Windows 8, vous devez utiliser le formulaire entièrement spécifié :

HKR,,Security,,"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;S-1-5-84-0-0-0-0-0)"       

Spécification de la sécurité des appareils dans un pilote KMDF

Pour spécifier des exigences de sécurité dans le pilote, vous devez utiliser le formulaire abrégé, qui n’est disponible qu’à partir de Windows 8. Par exemple, un pilote KMDF peut permettre l’accès à son appareil à partir de pilotes UMDF à l’aide des éléments suivants :

RtlInitUnicodeString(&sddlString, L"D:P(A;;GA;;;BA)(A;;GA;;;SY)(A;;GA;;;UD)");
status = WdfDeviceInitAssignSDDLString(DeviceInit, &sddlString);