Partager via


Opérations personnalisées de configuration de l’imprimante

Important

Nous vous recommandons d’utiliser le pilote de classe de boîte de réception IPP de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement d’appareils d’imprimante.

Pour plus d’informations, consultez le guide de conception d’application de prise en charge de l’impression.

Pour fournir des opérations de configuration d’imprimante personnalisées pour les imprimantes installées à l’aide de Ntprint.dll, le programme d’installation par défaut de la classe d’imprimante Windows 2000 et versions ultérieures, vous pouvez inclure une entrée INF VendorSetup dans le fichier INF de l’imprimante.

Attention

N’oubliez pas que VendorSetup est désormais déconseillé et ne doit pas être utilisé par les nouveaux pilotes v3 ou v4 que vous développez. Cette rubrique est fournie à titre de référence uniquement ou pour la maintenance des pilotes v3 existants qui utilisent déjà cette directive INF.

Si vous envisagez d’afficher des éléments d’interface utilisateur lors de l’installation d’un pilote d’imprimante, vous devez utiliser une entrée INF VendorSetup . Toutefois, vous devez utiliser une entrée INF VendorSetup uniquement si nécessaire. Un inconvénient important est que son utilisation empêche un utilisateur ordinaire d’installer une imprimante avec Plug-and-Play (l’utilisateur doit être administrateur dans ce cas).

Il n’est pas possible d’installer un appareil à l’aide d’une installation côté serveur lorsque le pilote de périphérique n’est pas signé ou lorsque le fichier INF du pilote (signé ou non signé) contient une entrée INF VendorSetup . Lorsque le pilote n’est pas signé, le programme d’installation ajoute 0x8000 au rang que le pilote aurait s’il s’agissait d’un pilote signé. Si le fichier INF du pilote contient une entrée VendorSetup , le programme d’installation détermine que l’installation de l’appareil nécessite une interaction utilisateur (qui ne peut pas se produire dans une installation côté serveur) et arrête l’installation.

Le programme d’installation arrête également une installation côté serveur si le classement du pilote est 0x8000 ou supérieur. L’installation peut se poursuivre lorsqu’un utilisateur disposant de privilèges d’administration se connecte, au moment où le programme d’installation redémarre l’installation de l’appareil en tant qu’installation côté client. Pour un pilote dont le rang est 0x1000 ou supérieur et qui ne correspond donc pas à l’ID matériel, le programme d’installation lance l’Assistant Nouveau matériel trouvé dans la DLL de nouvel appareil, qui invite l’utilisateur à installer un pilote.

Si le fichier INF d’un pilote signé contient une entrée VendorSetup et que le rang du pilote est inférieur à 0x1000, le programme d’installation ne lance pas l’Assistant Nouveau matériel trouvé. Pour plus d’informations, consultez Comment le programme d’installation sélectionne les pilotes.

Le format de l’entrée VendorSetup est le suivant :

VendorSetup= FileName, FunctionName

FileName est le nom d’une DLL contenant une fonction d’installation et FunctionName est le nom de la fonction. La DLL doit être installée dans le répertoire %windir%\system32. Le programme d’installation de la classe d’imprimante appelle la fonction d’installation dans cette DLL uniquement lorsque l’imprimante est installée par Plug-and-Play ou par l’Assistant Ajouter une imprimante. La fonction d’installation n’est pas appelée quand seul un pilote est installé (par exemple, à l’aide de l’Assistant Ajout d’un pilote d’imprimante).

Pour copier un ou plusieurs fichiers dans le répertoire %windir%\system32, vous pouvez ajouter le nom d’une section définie par un enregistreur INF à la section INF DestinationDirs . Dans l’exemple suivant, la section OEMVendorFiles répertorie tous les fichiers à copier.

[DestinationDirs]
OEMVendorFiles = 11
...
[OEMVendorFiles]
vendor.dll

La fonction spécifiée par FunctionName doit correspondre au prototype suivant :

VOID WINAPIFunctionname(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, UINT nCmdShow);

FunctionName est le nom de la fonction d’installation. Les paramètres de la fonction et leurs descriptions sont présentés dans le tableau suivant.

Paramètre Description
hWnd Spécifie le handle de la fenêtre parente.
hInstance Spécifie le instance handle du processus appelant.
lpszCmdLine Spécifie une chaîne ANSI contenant le nom de l’imprimante installée. Cette chaîne est analysée par FunctionName.
nCmdShow Spécifie le mode d’affichage de la fenêtre. Les indicateurs qui contrôlent la façon dont la fenêtre est affichée sont définis dans Winuser.h.

Le programme d’installation de la classe d’imprimante appelle la fonction d’installation comme l’une des dernières étapes de l’opération d’installation.