Serveur d'impression

Impression Terminal Server – Pilotes Windows – Serveur d’impression

Le 23 juillet 2019 - 4 minutes de lecture

<! – ->

Microsoft Windows 2000 et versions ultérieures prennent en charge les services Terminal Server, une technologie permettant à plusieurs utilisateurs de se connecter à un seul système de serveur. Ce système de serveur s'appelle un serveur de terminal. Pour une discussion détaillée sur les services Terminal Server, voir la documentation du SDK Windows.

Si vous développez un pilote d'imprimante ou un pilote pour Windows 2000 ou une version ultérieure, vous n'avez rien de spécial à faire pour prendre en charge les imprimantes connectées à des serveurs Terminal Server. Cependant, vous devez suivre toutes les instructions de conception, d'implémentation et d'installation spécifiées dans le Kit de pilotes Windows (WDK). Plus précisément, vous devez utiliser les règles suivantes:

Tout code de pilote personnalisé doit être réentrant. Le code en mode utilisateur doit utiliser des objets de section critiques (décrits dans la documentation du SDK Windows). Le code en mode noyau doit utiliser des sémaphores (voir EngCreateSemaphore et fonctions connexes).

Les pilotes d'imprimante et les composants de spouleur personnalisés ne doivent accéder au registre que par le biais d'interfaces fournies spécifiquement pour ces pilotes et composants de spouleur, comme décrit dans les sections appropriées du WDK.

Considérations d'installation

En règle générale, tout ce que vous devez faire pour l’installation est de fournir un fichier INF pouvant être lu par le programme d’installation de la classe d’imprimantes de Microsoft lorsqu'un utilisateur appelle le programme. Ajouter une imprimante sorcier. Parfois, un code d'installation personnalisé (un co-installateur ou un installateur de classe) est également nécessaire. Si vous devez créer un code d'installation personnalisé, n'oubliez pas les points suivants:

  • L’utilisateur ou le code d’installation doit mettre le serveur Terminal Server en mode d’installation. (Pour plus d'informations, consultez la documentation du Kit de développement logiciel Microsoft Windows.)

  • Ne tentez pas de remplacer les fichiers système. La protection de fichier Windows interdit le remplacement de fichier système.

  • Évitez autant que possible de redémarrer le système. Utilisez les instructions suivantes:

    1. Ne remplacez pas les fichiers de pilote qui n'ont pas changé. Par exemple, les fichiers partagés par plusieurs périphériques ne doivent pas être mis à jour si la version la plus récente est déjà installée.
    2. Si un fichier doit être remplacé, le code d'installation doit prendre des mesures pour décharger l'ancienne version, puis charger la nouvelle version (par exemple, en arrêtant le service de pilote, en remplaçant le fichier, puis en redémarrant le service).
    3. Demander à un utilisateur de se déconnecter puis de se reconnecter est préférable à un redémarrage du système.

Pour plus d'informations sur les co-installateurs et les installateurs de classe, voir Écriture des installateurs de classe et des co-installateurs.

Remarque Avant d'écrire du code d'installation personnalisé, il est important de lire les instructions de programmation des services Terminal Server fournies dans la documentation du SDK Windows.

Considérations sur l'interface utilisateur

Le code d'installation personnalisé exécuté par un utilisateur peut afficher une interface utilisateur.

Presque tout le code du pilote d'imprimante s'exécute dans le contexte d'exécution du spouleur et ne peut donc pas afficher d'interface utilisateur. Les interfaces utilisateur ne peuvent être affichées que par les DLL d'interface d'imprimante et uniquement à partir des fonctions suivantes:

  • le DrvDevicePropertySheets et DrvDocumentPropertySheets fonctions, qui créent des pages de propriétés.

  • le DrvPrinterEvent fonction, qui reçoit les codes d’événement identifiant les événements de l’imprimante. Notez que la fonction peut afficher une interface utilisateur uniquement pour les codes d'événement PRINTER_EVENT_ADD_CONNECTION et PRINTER_EVENT_DELETE_CONNECTION.

Tout autre code de pilote d'imprimante s'exécute dans le contexte du spouleur. Dans ce contexte, appeler Messagerie ou MessageBoxEx est autorisé, mais vous devez définir MB_SERVICE_NOTIFICATION. Ces fonctions sont décrites dans la documentation du SDK Windows.

<! – ->

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.