Partager via


Handles de ressources de communication

Un processus utilise la fonction CreateFile pour ouvrir un handle à une ressource de communication. Par exemple, la spécification de COM1 ouvre un handle sur un port série et LPT1 ouvre un handle sur un port parallèle. Si la ressource spécifiée est actuellement utilisée par un autre processus, CreateFile échoue. N’importe quel thread du processus peut utiliser le handle retourné par CreateFile pour identifier la ressource dans l’une des fonctions qui accèdent à la ressource.

Lorsque le processus appelle CreateFile pour ouvrir une ressource de communication, il spécifie les attributs suivants :

  • Quel type d’accès en lecture/écriture existe pour la ressource spécifiée.
  • Indique si le handle peut être hérité par les processus enfants.
  • Indique si le handle peut être utilisé dans des opérations d’E/S qui se chevauchent (asynchrones). (Pour obtenir une description des opérations qui se chevauchent, consultez Synchronisation.)

Lorsque le processus utilise CreateFile pour ouvrir une ressource de communication, il doit spécifier certaines valeurs pour les paramètres suivants :

  • Le paramètre fdwShareMode doit être égal à zéro, ce qui ouvre la ressource pour un accès exclusif.
  • Le paramètre fdwCreate doit spécifier l’indicateur OPEN_EXISTING.
  • Le paramètre hTemplateFile doit avoir la valeur NULL.

Lorsque vous utilisez CreateFile pour ouvrir un handle directement sur un appareil, une application doit utiliser les caractères spéciaux « \\ .\ » pour identifier l’appareil. Par exemple, pour ouvrir un handle pour le lecteur A, spécifiez \\ .\a: pour le paramètre lpszName de CreateFile. Le processus d’appel peut utiliser le handle dans la fonction DeviceIoControl pour envoyer des codes de contrôle à l’appareil.