Isolement du pilote d'imprimante – Pilotes Windows – Serveur d’impression

<! – ->

L'isolation du pilote d'imprimante améliore la fiabilité du service d'impression Windows en permettant aux pilotes d'imprimante de s'exécuter dans des processus distincts du processus d'exécution du spouleur d'impression.

La prise en charge de l'isolation du pilote d'imprimante est implémentée dans Windows 7, Windows Server 2008 R2 et les systèmes d'exploitation ultérieurs.

Pour Windows 7 et Windows Server 2008 R2, un pilote d'imprimante de boîte de réception doit prendre en charge l'isolation du pilote d'imprimante et pouvoir s'exécuter dans un processus isolé.

Versions précédentes de Windows

Dans les versions précédentes de Windows, y compris Windows Server 2008, les pilotes d'imprimante s'exécutaient toujours dans le même processus que le spouleur. Les composants du pilote d’imprimante exécutés dans le processus de spouleur sont les suivants:

L'échec d'un composant de pilote d'impression unique peut entraîner l'échec du sous-système d'impression, interrompant les opérations d'impression pour tous les utilisateurs et pour tous les composants d'impression.

Nouvelles versions de Windows

Avec Windows 7 et Windows Server 2008 R2, un administrateur peut, en option, configurer un pilote d'imprimante pour qu'il s'exécute dans un processus isolé, processus distinct du processus de spouleur. En isolant le pilote, l'administrateur peut empêcher une défaillance d'un composant du pilote d'arrêter le service d'impression.

Pour plus d'informations sur les fonctions de spouleur, voir Fonctions et structures de composant de spouleur.

Prise en charge de l'isolement du pilote dans les fichiers INF

Par défaut, si le fichier INF qui installe un pilote d'imprimante n'indique pas que le pilote prend en charge l'isolation de pilote, le programme d'installation de la classe d'imprimante configure le pilote pour qu'il s'exécute dans le processus de spouleur. Toutefois, si le fichier INF indique que le pilote prend en charge l'isolation de pilote, le programme d'installation le configure pour qu'il s'exécute dans un processus isolé. Un administrateur peut remplacer ces paramètres de configuration et spécifier, pour chaque pilote, si le pilote doit être exécuté dans le processus de spouleur ou dans un processus isolé.

Pour prendre en charge l’isolation du pilote, le fichier INF qui installe un pilote d’imprimante peut utiliser le DriverIsolation mot-clé indiquant si le pilote prend en charge l'isolation du pilote d'imprimante. Réglage DriverIsolation= 2 indique que le pilote prend en charge l'isolement du pilote. Réglage DriverIsolation= 0 indique que le pilote ne prend pas en charge l'isolement du pilote. Omettant le DriverIsolation mot-clé du fichier INF a le même effet que la définition DriverIsolation= 0.

Fonctions du spouleur pour les paramètres d'isolation du pilote

Le tableau suivant répertorie les fonctions de spouleur que l’administrateur peut utiliser pour configurer les paramètres d’isolation du pilote.

Le format des données est le suivant:

  • Le pilote de chaque groupe est séparé par ''
  • Chaque groupe de pilotes est séparé par ''

Le premier groupe charge le pilote dans les processus de spouleur. Chaque groupe suivant charge les pilotes dans des processus isolés par groupe. Le deuxième groupe est considéré comme le groupe "partagé" dans lequel d'autres pilotes à capacité d'isolation sont chargés par défaut.

Configuration du mode d'isolation du pilote via l'administration

Un administrateur d'ordinateur peut utiliser la console de gestion d'impression Windows ou appeler les fonctions de spouleur de Windows pour configurer les paramètres d'isolation de pilote pour chaque pilote d'imprimante installé sur un ordinateur. L'administrateur configure le pilote pour utiliser l'un des paramètres répertoriés dans le tableau suivant.

Mode d'isolation du pilote Sens

partagé

Exécutez le pilote dans un processus partagé avec d'autres pilotes d'imprimante, mais distinct du processus de spouleur.

Isolé

Exécutez le pilote dans un processus distinct du processus de spouleur et qui n'est pas partagé avec d'autres pilotes d'imprimante.

Aucun

Exécutez le pilote dans le processus de spouleur.

Idéalement, un pilote d'imprimante est capable de fonctionner en mode partagé. En d'autres termes, il s'exécute dans un processus isolé partagé avec d'autres pilotes d'imprimante, mais distinct du processus de spouleur. Un pilote peut avoir besoin de s'exécuter en mode isolé s'il peut s'exécuter dans un processus distinct du processus de spouleur, mais rencontre des difficultés pour partager le processus avec d'autres pilotes. Par exemple, un pilote mal conçu peut avoir des noms de fichiers en conflit avec ceux de pilotes associés ou de versions différentes du même pilote, ou le pilote peut être en panne fréquemment ou présenter une fuite de mémoire qui interfère avec le fonctionnement des autres pilotes exécutés dans le répertoire. même processus.

Pour prendre en charge le dépannage, l'administrateur de domaine peut désactiver la fonctionnalité d'isolation de pilote sur un ordinateur du domaine ou forcer tous les pilotes d'imprimante de l'ordinateur à s'exécuter en mode isolé. En mode isolé, chaque pilote doit être exécuté dans un processus distinct du spouleur et des autres pilotes d'imprimante.

Si l'isolation de pilote est désactivée par la stratégie de groupe, elle est désactivée pour tous les pilotes d'imprimante. Si l'isolation est activée, les pilotes individuels sont contrôlés en mode. Si un pilote a un mode d'isolation défini, il s'exécute en mode partagé, isolé ou aucun, en fonction de l'entrée de registre. Toutefois, si le mode d'isolation n'est pas défini sur le pilote et qu'il est compatible avec l'isolation, il s'exécute en mode partagé. Si le pilote n'est pas compatible avec le mode, la substitution de stratégie de groupe détermine si le pilote s'exécute en mode partagé ou en mode aucun.

Le graphique suivant montre une carte de décision permettant de choisir le mode d'isolation du pilote:

organigramme pour choisir le mode d'isolation du pilote "data-linktype =" chemin relatif

Fonctions de spouleur autorisées sous isolation de pilote

Seules des fonctions spécifiques sont autorisées dans l'isolement du pilote.

Fonctions Spoolss.dll

Les fonctions suivantes sont exportées par spoolss.dll et sont disponibles pour les plug-ins de spouleur en créant un lien vers spoolss.lib.

AddMonitorW

AppendPrinterNotifyInfoData

FermerImprimante

DeletePortW

DeletePrintProcessorW

EndDocPrinter

EndPagePrinter

EnumFormsW

EnumJobsW

FlushPrinter

GetJobAttributes

GetJobAttributesEx

GetJobW

GetPrinterDataExW

GetPrinterDataW

GetPrinterDriverDirectoryW

GetPrinterDriverW

GetPrinterW

ImpersonatePrinterClient

OpenPrinterW

ReadPrinter

RouterCreatePrintAsyncNotificationChannel

RouterGetPrintClassObject

SetJobW

SetPrinterDataExW

SetPrinterDataW

StartDocPrinterW

StartPagePrinter

WritePrinter

Fonctions WinSpool.drv

Les fonctions suivantes sont exportées par winspool.drv et sont disponibles pour les plug-ins de spouleur en se connectant à Winspool.h.

AppendPrinterNotifyInfoData

ExtDeviceMode

ImpersonatePrinterClient

IsValidDevmode

PartialReplyPrinterChangeNotification

ReplyPrinterChangeNotification

RevertToPrinterSelf

RouterAllocBidiMem

RouterAllocBidiResponseContainer

RouterAllocPrinterNotifyInfo

RouterCreatePrintAsyncNotificationChannel

RouterFreeBidiMem

RouterFreeBidiResponseContainer

RouterFreePrinterNotifyInfo

RouterGetPrintClassObject

RouterRegisterForPrintAsyncNotifications

RouterUnregisterForPrintAsyncNotifications

<! – ->

Isolement du pilote d'imprimante – Pilotes Windows – Serveur d’impression
4.9 (98%) 32 votes