Partager via


Ouvrir et fermer un port

Une fois qu’un port a été ajouté, comme décrit dans Ajout d’un port, le spouleur peut l’ouvrir en appelant la fonction OpenPortEx du moniteur de langue approprié.

Le moniteur de langue utilise la fonction OpenPortEx pour créer et retourner un handle de port. En règle générale, un moniteur de langue appelle la fonction OpenPort de son moniteur de port associé, et le moniteur de langue retourne simplement le handle obtenu à partir de l’OpenPort du moniteur de port.

Si un moniteur de langue n’est pas associé à un port, le spouleur appelle directement la fonction OpenPort du moniteur de port.

Le spouleur n’autorise pas l’activation de plusieurs chemins d’accès à un port à la fois. Ainsi, après avoir appelé OpenPortEx (ou OpenPort) dans un moniteur particulier, il ne tente pas d’ouvrir à nouveau le même port avant de le fermer.

Une fois qu’un port a été ouvert, le spouleur peut appeler des fonctions supplémentaires pour imprimer un travail, comme décrit dans Impression d’un travail d’impression, en utilisant le handle de port comme argument d’entrée. Un moniteur doit être écrit de sorte qu’une fois qu’un port a été ouvert, le spouleur puisse envoyer plusieurs travaux d’impression avant de fermer le port.

Le spouleur ferme un port si un travail doit être envoyé via un autre moniteur de langue, si aucune file d’attente d’impression n’est associée à un port ou lorsque le système s’arrête. Pour fermer un port, le spouleur appelle la fonction ClosePort d’un moniteur de langue. La fonction invalide le handle qui a été créé lors de l’ouverture du port. Un moniteur de langage appelle généralement la fonction ClosePort définie par son moniteur de port associé.

Si un moniteur de langue n’est pas associé à un port, le spouleur appelle directement la fonction ClosePort du moniteur de port.