Öffnen und Schließen eines Ports
Nachdem ein Port hinzugefügt wurde, wie unter Hinzufügen eines Ports beschrieben, kann der Spooler ihn öffnen, indem er die OpenPortEx-Funktion des entsprechenden Sprachmonitors aufruft.
Der Sprachmonitor verwendet die OpenPortEx-Funktion , um ein Porthandle zu erstellen und zurückzugeben. In der Regel ruft ein Sprachmonitor die OpenPort-Funktion des zugeordneten Portmonitors auf, und der Sprachmonitor gibt nur den Handle zurück, der vom OpenPort des Portmonitors abgerufen wurde.
Wenn ein Sprachmonitor keinem Port zugeordnet ist, ruft der Spooler die OpenPort-Funktion des Portmonitors direkt auf.
Der Spooler lässt nicht zu, dass mehrere Pfade zu einem Port gleichzeitig aktiviert werden. Nach dem Aufruf von OpenPortEx (oder OpenPort) in einem bestimmten Monitor versucht es daher nicht, denselben Port erneut zu öffnen, bevor er ihn schließt.
Nachdem ein Port geöffnet wurde, kann der Spooler zusätzliche Funktionen zum Drucken eines Auftrags aufrufen, wie unter Drucken eines Druckauftrags beschrieben, wobei das Porthandle als Eingabeargument verwendet wird. Ein Monitor sollte so geschrieben werden, dass der Spooler nach dem Öffnen eines Ports mehrere Druckaufträge senden kann, bevor er den Port schließt.
Der Spooler schließt einen Port, wenn ein Auftrag über einen anderen Sprachmonitor gesendet werden muss, wenn keine Druckwarteschlangen einem Port zugeordnet sind oder wenn das System heruntergefahren wird. Um einen Port zu schließen, ruft der Spooler die ClosePort-Funktion eines Sprachmonitors auf. Die Funktion ungültigt das Handle, das beim Öffnen des Ports erstellt wurde. Ein Sprachmonitor ruft in der Regel die ClosePort-Funktion auf, die durch den zugehörigen Portmonitor definiert wird.
Wenn ein Sprachmonitor keinem Port zugeordnet ist, ruft der Spooler die ClosePort-Funktion des Portmonitors direkt auf.