Aprire e chiudere una porta
Dopo l'aggiunta di una porta, come descritto in Aggiunta di una porta, lo spooler può aprirla chiamando la funzione OpenPortEx del monitoraggio del linguaggio appropriato.
Il monitoraggio del linguaggio usa la funzione OpenPortEx per creare e restituire un handle di porta. In genere, un monitoraggio del linguaggio chiama la funzione OpenPort del monitoraggio delle porte associata e il monitoraggio del linguaggio restituisce solo l'handle ottenuto dall'oggetto OpenPort del monitoraggio delle porte.
Se un monitoraggio del linguaggio non è associato a una porta, lo spooler chiama direttamente la funzione OpenPort del monitoraggio delle porte.
Lo spooler non consente l'abilitazione di più percorsi di una porta contemporaneamente. Pertanto, dopo aver chiamato OpenPortEx (o OpenPort) in un determinato monitor, non tenta di aprire nuovamente la stessa porta prima di chiuderla.
Dopo l'apertura di una porta, lo spooler può chiamare funzioni aggiuntive per stampare un processo, come descritto in Stampa di un processo di stampa, usando l'handle di porta come argomento di input. È necessario scrivere un monitoraggio in modo che, dopo l'apertura di una porta, lo spooler possa inviare più processi di stampa prima di chiudere la porta.
Lo spooler chiude una porta se un processo deve essere inviato tramite un monitoraggio del linguaggio diverso, se nessuna coda di stampa è associata a una porta o quando il sistema viene arrestato. Per chiudere una porta, lo spooler chiama la funzione ClosePort di un monitor del linguaggio. La funzione invalida l'handle creato all'apertura della porta. Un monitoraggio del linguaggio chiama in genere la funzione ClosePort definita dal monitoraggio delle porte associato.
Se un monitoraggio del linguaggio non è associato a una porta, lo spooler chiama direttamente la funzione ClosePort del monitor della porta.