Condividi tramite


Isolamento driver stampante

Importante

La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.

Per altre informazioni, vedere Piattaforma di stampa moderna e guida alla progettazione dell'app di supporto per la stampa.

L'isolamento del driver della stampante migliora l'affidabilità del servizio di stampa Windows, consentendo l'esecuzione dei driver della stampante in processi separati dal processo in cui viene eseguito lo spooler di stampa.

Il supporto per l'isolamento dei driver della stampante viene implementato in Windows 7, Windows Server 2008 R2 e sistemi operativi successivi.

A partire da Windows 7 e Windows Server 2008 R2, un driver della stampante posta in arrivo deve supportare l'isolamento del driver della stampante e poter essere eseguito in un processo isolato.

Nelle versioni precedenti di Windows, i driver della stampante sono sempre stati eseguiti nello stesso processo dello spooler. I componenti del driver della stampante eseguiti nel processo di spooler includono quanto segue:

  • Moduli di configurazione del driver di stampa

  • Processori di stampa

  • Moduli di rendering

L'errore di un singolo componente driver di stampa potrebbe causare l'esito negativo del sottosistema di stampa, interrompendo le operazioni di stampa per tutti gli utenti e per tutti i componenti di stampa.

A partire da Windows 7 e Windows Server 2008 R2, un amministratore può, come opzione, configurare un driver della stampante per l'esecuzione in un processo isolato, ovvero un processo separato dal processo di spooler. Isolando il driver, l'amministratore può impedire a un errore in un componente driver di interrompere il servizio di stampa.

Per altre informazioni sulle funzioni spooler, vedere Funzioni e strutture del componente Spooler.

Supporto dell'isolamento dei driver nei file INF

Per impostazione predefinita, se il file INF che installa un driver della stampante non indica che il driver supporta l'isolamento del driver, il programma di installazione della classe della stampante configura il driver da eseguire nel processo di spooler. Tuttavia, se il file INF indica che il driver supporta l'isolamento del driver, il programma di installazione configura il driver da eseguire in un processo isolato. Un amministratore può eseguire l'override di queste impostazioni di configurazione e specificare, per ogni driver, se eseguire il driver nel processo di spooler o in un processo isolato.

Per supportare l'isolamento dei driver, il file INF che installa un driver della stampante può usare la parola chiave DriverIsolation per indicare se il driver supporta l'isolamento del driver della stampante. L'impostazione di DriverIsolation=2 indica che il driver supporta l'isolamento del driver. L'impostazione di DriverIsolation=0 indica che il driver non supporta l'isolamento del driver. L'omissione della parola chiave DriverIsolation dal file INF ha lo stesso effetto dell'impostazione di DriverIsolation=0.

Funzioni Spooler per le impostazioni di isolamento del driver

La tabella seguente illustra le funzioni di spooler che un amministratore può usare per configurare le impostazioni di isolamento del driver.

Nome della funzione Operazione
GetPrinterDataEx Ottenere le impostazioni di isolamento del driver per una stampante.
SetPrinterDataEx Impostare le impostazioni di isolamento driver per una stampante.
EnumPrinterDataEx Enumerare le impostazioni di isolamento driver per una stampante.
FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification Richiedere notifiche delle modifiche alle impostazioni di isolamento del driver per una stampante.

Il formato per i dati è il seguente:

  • Il driver in ogni gruppo è separato da '\'

  • Ogni gruppo di driver è separato da '\\'

Il primo gruppo carica il driver nei processi di spooler. Ogni gruppo successivo carica i driver in processi isolati per gruppo. Il secondo gruppo viene considerato il gruppo "condiviso" in cui altri driver con supporto per l'isolamento vengono caricati per impostazione predefinita.

Configurazione della modalità di isolamento dei driver tramite l'amministrazione

Un amministratore di computer può usare la console di gestione di stampa di Windows o chiamare le funzioni spooler di Windows per configurare le impostazioni di isolamento driver per ogni driver della stampante installato in un computer. L'amministratore configura il driver per l'uso di una delle impostazioni elencate nella tabella seguente.

Modalità di isolamento driver significato
Condiviso Eseguire il driver in un processo condiviso con altri driver della stampante, ma è separato dal processo di spooler.
Isolato Eseguire il driver in un processo separato dal processo di spooler e non condiviso con altri driver della stampante.
None Eseguire il driver nel processo di spooler.

Idealmente, un driver della stampante è in grado di essere eseguito in modalità condivisa. Ovvero, viene eseguito in un processo isolato condiviso con altri driver della stampante, ma separato dal processo di spooler. Un driver potrebbe dover essere eseguito in modalità isolata se può essere eseguito in un processo separato dal processo di spooler, ma ha difficoltà a condividere il processo con altri driver. Ad esempio, un driver progettato in modo non appropriato potrebbe avere nomi di file in conflitto con quelli di driver correlati o di versioni diverse dello stesso driver oppure il driver potrebbe generare spesso errori o avere una perdita di memoria che interferisce con il funzionamento di altri driver che vengono eseguiti nello stesso processo.

Per supportare la risoluzione dei problemi, l'amministratore di dominio può disabilitare la funzionalità di isolamento del driver in un computer nel dominio oppure l'amministratore può forzare l'esecuzione di tutti i driver della stampante nel computer in modalità isolata. In modalità isolata, ogni driver deve essere eseguito in un processo separato dallo spooler e dagli altri driver della stampante.

Se l'isolamento del driver è disabilitato da Criteri di gruppo, l'isolamento è disattivato per tutti i driver della stampante. Se l'isolamento è abilitato, i singoli driver vengono controllati in modalità. Se un driver ha impostato la modalità di isolamento, viene eseguito in modalità condivisa, isolata o none, in base alla voce del Registro di sistema. Tuttavia, se il driver non ha la modalità di isolamento impostata ed è compatibile con l'isolamento, viene eseguito in modalità condivisa. Se il driver non è compatibile con la modalità , l'override di Criteri di gruppo determina se il driver viene eseguito in modalità condivisa o non in modalità nessuno.

Il grafico seguente mostra una mappa decisionale per la scelta della modalità di isolamento del driver:

diagramma di flusso per la scelta della modalità di isolamento del driver.

Funzioni Spooler consentite nell'isolamento del driver

Solo le funzioni specifiche sono consentite in isolamento del driver.

funzioni Spoolss.dll

Le funzioni seguenti vengono esportate da spoolss.dll e sono disponibili per i plug-in spooler collegando spoolss.lib.

Funzioni WinSpool.drv

Le funzioni seguenti vengono esportate da winspool.drv e sono disponibili per i plug-in spooler collegando a Winspool.h.

Vedi anche

Funzioni e strutture del componente Spooler