Assistance technique informatique étonnante: isolation du pilote d'imprimante – 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:
-
Modules de configuration du pilote d'impression
-
Processeurs d'impression
-
Modules de rendu
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 DriverIsolationmot-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.
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:
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
RouterUnregisterForPrintAsyncNotifications
Commentaires
Laisser un commentaire