Niestandardowe operacje konfiguracji drukarki
Ważny
Nowoczesna platforma drukowania jest preferowanym sposobem komunikacji z drukarkami w systemie Windows. Zalecamy używanie sterownika klasy skrzynki odbiorczej IPP firmy Microsoft wraz z aplikacjami do obsługi drukowania (PSA), aby dostosować środowisko drukowania w systemie Windows 10 i 11 na potrzeby opracowywania urządzeń drukarki.
Aby uzyskać więcej informacji, zobacz przewodnik projektowania aplikacji do obsługi druku .
Aby zapewnić operacje dostosowanej konfiguracji drukarki dla drukarek zainstalowanych przy użyciu Ntprint.dll, domyślnego instalatora klasy drukarek Windows 2000 i nowszych, można dołączyć wpis VendorSetup INF do pliku INF drukarki.
Ostrożność
Należy pamiętać, że VendorSetup jest teraz przestarzała i nie powinna być używana przez żadne nowych sterowników w wersji 3 lub 4, które tworzysz. Ten temat jest dostępny tylko do celów referencyjnych lub konserwacji istniejących sterowników w wersji 3, które już korzystają z tej dyrektywy INF.
Jeśli planujesz wyświetlić elementy interfejsu użytkownika podczas instalacji sterownika drukarki, musisz użyć wpisu VendorSetup INF. Należy jednak użyć wpisu VendorSetup INF tylko wtedy, gdy jest to konieczne. Istotną wadą jest to, że jego użycie uniemożliwia zwykłemu użytkownikowi zainstalowanie drukarki z funkcją Plug and Play (w tym przypadku użytkownik musi być administratorem).
Nie można zainstalować urządzenia przy użyciu instalacji po stronie serwera, gdy sterownik urządzenia jest niepodpisany lub gdy plik INF sterownika (podpisany lub niepodpisany) zawiera wpis INF VendorSetup INF. Gdy sterownik jest niepodpisany, Instalator dodaje 0x8000 do rangi, jaką sterownik miałby, gdyby był podpisanym sterownikiem. Jeśli plik INF sterownika zawiera wpis VendorSetup, Instalator określa, że instalacja urządzenia wymaga interakcji użytkownika (która nie może wystąpić w instalacji po stronie serwera) i zatrzymuje instalację.
Instalator zatrzymuje również instalację po stronie serwera, jeśli klasyfikacja sterownika jest 0x8000 lub większa. Instalacja może być kontynuowana po zalogowaniu się użytkownika z uprawnieniami administracyjnymi, w którym instalator ponownie uruchomi instalację urządzenia jako instalację po stronie klienta. W przypadku sterownika, którego ranga jest 0x1000 lub większa, i dlatego nie jest zgodna z identyfikatorem sprzętu, Instalator uruchamia Kreatora znajdowania nowego sprzętu w bibliotece New Device DLL, który pyta użytkownika o zainstalowanie sterownika.
Jeśli plik INF podpisanego sterownika zawiera wpis VendorSetup, a ranga sterownika jest mniejsza niż 0x1000, Instalator nie uruchamia Kreatora znajdowania nowego sprzętu. Aby uzyskać więcej informacji, zobacz Jak instalator wybiera sterowniki.
Format wpisu VendorSetup jest następujący:
VendorSetup= FileName, FunctionName
gdzie FileName jest nazwą biblioteki DLL zawierającej funkcję instalatora, a FunctionName jest nazwą funkcji. Biblioteka DLL musi być zainstalowana w katalogu %windir%\system32. Instalator klasy drukarki wywołuje funkcję instalacyjną w tej bibliotece DLL tylko wtedy, gdy drukarka jest zainstalowana przez Plug and Play lub przez Kreatora Dodawania Drukarki. Funkcja instalacji nie jest wywoływana, gdy jest zainstalowany tylko sterownik (na przykład za pomocą Kreatora dodawania sterownika drukarki).
Aby skopiować jeden lub więcej plików do katalogu %windir%\system32, możesz dodać nazwę sekcji zdefiniowanej przez autora INF do sekcji INF DestinationDirs. W poniższym przykładzie sekcja OEMVendorFiles zawiera listę wszystkich plików, które mają zostać skopiowane.
[DestinationDirs]
OEMVendorFiles = 11
...
[OEMVendorFiles]
vendor.dll
Funkcja określona przez FunctionName musi być zgodna z następującym prototypem:
VOID WINAPI
FunctionName(HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, UINT nCmdShow);
gdzie FunctionName jest nazwą funkcji setup. Parametry funkcji i ich opisy przedstawiono w poniższej tabeli.
Parametr | Opis |
---|---|
hWnd | Określa uchwyt okna nadrzędnego. |
hInstance | Określa uchwyt instancji procesu wywołującego. |
lpszCmdLine | Określa ciąg ANSI zawierający nazwę zainstalowanej drukarki. Ten ciąg jest analizowany przez FunctionName. |
nCmdShow | Określa sposób wyświetlania okna. Flagi kontrolujące sposób wyświetlania okna są zdefiniowane w pliku Winuser.h. |
Instalator klasy drukarki wywołuje funkcję setup jako jeden z ostatnich kroków operacji instalacji.