Spécification de l’accès exclusif aux objets d’appareil

Si l’accès exclusif à un appareil est activé, un seul handle de l’appareil peut être ouvert à la fois. Pour que le gestionnaire d’E/S applique un accès exclusif à l’appareil, la propriété exclusive doit être définie pour l’objet d’appareil nommé dans la pile d’appareils.

Pour une pile d’appareils WDM qui a à la fois un PDO et un FDO, la propriété exclusive ne peut être définie que par le fichier INF, à l’aide d’une directive ADDReg INF. Le PDO est l’objet nommé dans la pile, mais le pilote de bus (et non le pilote de fonction lui-même) crée l’AOP, au nom du pilote de fonction. La seule façon de diriger le pilote de bus pour définir l’indicateur exclusif pour le PDO consiste à utiliser les fichiers INF de la classe ou de l’appareil. (L’appel à la routine IoCreateDevice crée le FDO ; la définition de l’indicateur exclusif pour le FDO n’a aucun effet.)

Les pilotes dont les objets d’appareil ne sont pas empilés, tels que les pilotes non WDM et les appareils qui fonctionnent en mode brut, peuvent utiliser la routine IoCreateDeviceSecure pour définir la propriété exclusive de leur objet d’appareil nommé.

Le gestionnaire d’E/S applique l’exclusivité par nom sur les objets d’appareil nommés, quel que soit le nom de fin. Par exemple, supposons que l’objet d’appareil porte le nom « \Device\DeviceName ». Ensuite, le gestionnaire d’E/S applique l’exclusivité pour une demande d’ouverture « \Device\DeviceName\Filename1 » suivi de « \Device\DeviceName\Filename2 ». Si deux objets de la pile d’appareils sont nommés (ce qui n’est pas recommandé), le gestionnaire d’E/S autorise l’ouverture d’un seul handle pour chaque objet. Dans une telle situation, les conducteurs doivent appliquer eux-mêmes l’exclusivité au sein de leurs fonctions de rappel DRIVER_DISPATCH . Le gestionnaire d’E/S n’applique pas non plus l’exclusivité pour les ouvertures par rapport à un autre handle de fichier. Pour plus d’informations sur les demandes d’ouverture de fichiers dans l’espace de noms de l’appareil, consultez Contrôle de l’accès à l’espace de noms d’appareil.