Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 Print Support App v1 and v2 design guide (Przewodnik projektowania aplikacji do obsługi wydruku w wersji 1 i 2).
Minidrivery drukarek oparte na Unidrv i Pscript5, a także monolityczne sterowniki drukarek (opracowane całkowicie przez IHV), powinny stosować zarządzanie wersjami sterowników w systemie Microsoft Windows XP i nowszych. Bufor wydruku w systemie Windows XP i nowszym używa informacji o wersjonowaniu, aby umożliwić wybranie poprawnych plików sterowników podczas instalacji nowej wersji systemu operacyjnego lub dodatku Service Pack, lub po nawiązaniu nowego połączenia Punkt i Drukuj.
Przechowywanie wersji sterownika drukarki nie jest obsługiwane w systemie Windows 2000 lub wcześniejszych wersjach systemu operacyjnego NT. W tych wersjach systemu operacyjnego bufor wydruku opiera swoją decyzję o tym, czy zastąpić określony plik sterownika wyłącznie na sygnaturze czasowej pliku. Nowszy plik jest zawsze wybierany w preferencjach dla starszego pliku, mimo że plik z nowszą datą może mieć stary zestaw funkcji. Ponieważ jest tak łatwo zmienić datę pliku, może to uniemożliwić buforowi dokonanie prawidłowego wyboru w wybieranych plikach.
Aby upewnić się, że są zainstalowane poprawne wersje plików sterowników, wystarczy dodać numery wersji do tych plików. Można to zrobić, wprowadzając drobne modyfikacje pliku pdrvver.h (który jest dostarczany z zestawem sterowników systemu Windows) i dołączając ten plik do pliku zasobu DLL sterownika drukarki. Skonfigurowanie sterownika monolitycznego poprzez instalację opartą na plikach INF również korzysta z wersjonowania sterowników, ponieważ nowsza DLL nie jest zastępowana przez starszą, nawet jeśli starsza DLL może mieć nowszą sygnaturę czasową.
Nagłówek pdrvver.h składa się prawie wyłącznie z dyrektyw preprocesora #define. Pierwsze dwa, VER_FILETYPE i VER_FILESUBTYPE, które nie mogą być modyfikowane, wskazują, że plik jest plikiem zasobów sterownika, w szczególności sterownika drukarki. Stałe VFT_DRV i VFT2_DRV_VERSIONED_PRINTER, które pojawiają się z VER_FILETYPE i VER_FILESUBTYPE, są opisane w strukturze VS_FIXEDFILEINFO. Te, które należy zmienić, to ostatnie cztery, które są następujące:
VER_FILEVERSION
Ta stała powinna być ustawiona na sekwencję czterech wartości programu WORD rozdzielanych przecinkami. Trzecie i czwarte słowa WORD są używane do ustawienia odpowiednio wysokiego i niskiego słowa WORD w członku dwFileVersionLS struktury VS_FIXEDFILEINFO.
Znaczenie każdego z czterech słów WORD zostało opisane poniżej.
Pierwszy Word
Zastrzeżony. Ta wartość powinna być ustawiona na 0.
Drugi program WORD
Reprezentuje wersję główną sterownika. W przypadku sterowników trybu użytkownika ustaw tę wartość na 0x0003. W przypadku sterowników trybu jądra ustaw na wartość 0x0002.
Trzecie WORD
Numer zestawu funkcji reprezentowany jest jako wysoki i niski bajt.
Duży bajt
Reprezentuje główne wydanie zestawu funkcji. Przyjmuje się, że nowsza wersja zawiera wszystkie funkcje poprzedniego wydania. Zwiększ tę wartość przy każdej nowej wersji głównej.
W przypadku minidriverów opartych na Unidrv i Pscript5, działających w systemie Windows XP i nowszych, w tym aktualizacjach systemu Windows i Service Packach, należy ustawić to na 0x05.
Niski bajt
Reprezentuje wydanie zestawu drobnych funkcji — nowe wydanie z tej samej bazy kodu lub architektury. Zwiększ tę wartość przy każdej nowej wersji pomniejszej.
W przypadku minidriverów opartych na unidrv i Pscript5 działających w następujących wersjach systemu operacyjnego ten bajt powinien być ustawiony w następujący sposób:
Windows XP: ustaw wartość na 0x01.
Service Pack 1 dla Windows XP: ustaw na 0x01. (Określony numer poprawki błędów pojawia się w czwartym programie WORD).
Pierwsza aktualizacja systemu Windows: ustaw wartość na 0x02.
Czwarte SŁOWO
Reprezentuje poprawkę usterek lub wydanie dodatku Service Pack. Zwiększ tę wartość przy wydawaniu nowego pliku binarnego, gdy jest to kolekcja poprawek błędów lub Service Pack.
Oto przykład sterownika monolitycznego:
#define VER_FILEVERSION 0, 3, 0X0100, 0X0002
W kolejności od lewej do prawej pierwsza wartość WORD to zero, które musi być. Wartość drugiego programu WORD to trzy, co oznacza, że jest to sterownik trybu użytkownika. W trzecim programie WORD wartość wysokiego bajtu (0X01) oznacza, że jest to pierwsza wersja główna, a niski bajt tego samego programu WORD (0x00) wskazuje, że do tej pory nie ma wersji pomocniczych. Czwarty WORD (0x0002) wskazuje, że jest to druga poprawka błędu lub wydanie pakietu serwisowego. (Nie ma rozróżnienia między tymi typami wydań).
Oto kilka przykładów minidriver opartych na unidrv-/Pscript5:
#define VER_FILEVERSION 0, 3, 0X0501, 0X0001
W kolejności od lewej do prawej pierwsza wartość programu WORD wynosi zero, tak jak poprzednio. Wartość drugiego programu WORD to trzy, co oznacza, że jest to sterownik trybu użytkownika. W trzecim programie WORD wysokie wartości bajtów i niskich bajtów (odpowiednio 0X05 i 0x01) oznaczają, że jest to wersja systemu Windows XP. Czwarty WORD (0x0001) wskazuje, że jest to pierwsza poprawka błędu lub wydanie dodatku service pack.
#define VER_FILEVERSION 0, 3, 0X0502, 0X0000
Tak jak poprzednio, pierwszy program WORD ma wartość zero, a drugi program WORD wskazuje, że jest to minidriver w trybie użytkownika. Trzecie WORD (0x0502) wskazuje, że to pierwsza wersja Windows Update wydana po Windows XP. Czwarty WORD (0x0000) wskazuje, że nie jest to ani poprawka błędów, ani wydanie typu Service Pack.
VER_FILEDESCRIPTION_STR
Ta stała powinna być ustawiona na nazwę identyfikującą sterownik, jak w poniższym przykładzie.
#define VER_FILEDESCRIPTION_STR "Sample Printer Driver Resource DLL"
VER_INTERNALNAME_STR
Ustaw tę stałą na nazwę określającą wewnętrzną nazwę pliku (nie zawierającą ścieżki), jak w poniższym przykładzie.
#define VER_INTERNALNAME_STR "SAMPLERES.DLL"
VER_ORIGINALFILENAME_STR
Ustaw tę stałą na nazwę określającą oryginalną nazwę pliku (bez ścieżki), jak w poniższym przykładzie.
#define VER_ORIGINALFILENAME_STR "SAMPLERES.DLL"