Model sterownika Windows - Windows Driver Model

W obliczaniu The Windows Driver Model ( WDM ) - znany również w pewnym momencie jako Win32 Driver Model  - jest szkieletem dla sterowników urządzeń , które zostały wprowadzone w systemie Windows 98 i Windows 2000 , aby zastąpić VxD , który był używany w starszych wersjach systemu Windows, takich jak Windows 95 i Windows 3.1 , a także model sterownika Windows NT .

Przegląd

Sterowniki WDM są ułożone w stos i komunikują się ze sobą za pośrednictwem pakietów żądań we / wy (IRP). Model sterownika Microsoft Windows ujednolicił modele sterowników dla linii produktów Windows 9x i Windows NT poprzez ujednolicenie wymagań i zmniejszenie ilości kodu, który trzeba było napisać. Sterowniki WDM nie będą działać w systemach operacyjnych wcześniejszych niż Windows 98 lub Windows 2000, takich jak Windows 95 (przed aktualizacją OSR2, która ładuje model WDM), Windows NT 4.0 i Windows 3.1. Dzięki zgodności ze standardem WDM sterowniki mogą być binarne i zgodne ze źródłami w systemach Windows 98, Windows 98 Second Edition, Windows Me , Windows 2000, Windows XP , Windows Server 2003 i Windows Vista (w celu zapewnienia zgodności wstecznej) na komputerach z procesorami x86 . Sterowniki WDM są zaprojektowane tak, aby były zgodne z nowszymi wersjami, dzięki czemu sterownik WDM może działać w wersji systemu Windows nowszej niż ta, dla której został pierwotnie napisany, ale oznaczałoby to, że sterownik nie może korzystać z żadnych nowych funkcji wprowadzonych wraz z nowym wersja. WDM generalnie nie jest kompatybilny ze starszymi wersjami systemu Windows, co oznacza, że ​​nie ma gwarancji, że sterownik WDM będzie działał w starszych wersjach systemu Windows. Na przykład system Windows XP może używać sterownika napisanego dla systemu Windows 2000, ale nie będzie korzystać z żadnej z nowych funkcji WDM, które zostały wprowadzone w systemie Windows XP. Jednak sterownik napisany dla systemu Windows XP może, ale nie musi, ładować się w systemie Windows 2000.

WDM istnieje w pośredniej warstwie sterowników trybu jądra systemu Windows 2000 i został wprowadzony w celu zwiększenia funkcjonalności i łatwości pisania sterowników dla systemu Windows. Chociaż WDM został zaprojektowany głównie tak, aby był binarny i kompatybilny ze źródłami między Windows 98 i Windows 2000, nie zawsze może to być pożądane, dlatego można opracować specyficzne sterowniki dla każdego systemu operacyjnego.

Sterowniki urządzeń w trybie jądra

Dzięki modelowi sterowników systemu Windows (WDM) dla urządzeń firma Microsoft wdraża podejście do sterowników trybu jądra, które jest unikalne dla systemów operacyjnych Windows . WDM implementuje architekturę warstwową dla sterowników urządzeń , a każde urządzenie w komputerze jest obsługiwane przez stos sterowników. Jednak każdy sterownik w tym stosie może w łańcuchu izolować niezależne od sprzętu funkcje od sterownika znajdującego się powyżej i poniżej. Dzięki temu kierowcy w stosie nie muszą wchodzić ze sobą w bezpośrednią interakcję. WDM definiuje architekturę i procedury urządzeń dla szeregu urządzeń, takich jak wyświetlacz i karta sieciowa , znanych jako specyfikacja interfejsu sterownika sieciowego (NDIS). W architekturze NDIS warstwowe sterowniki sieciowe obejmują sterowniki niższego poziomu, które zarządzają sprzętem, i sterowniki wyższego poziomu, które implementują sieciowy transport danych, takie jak protokół kontroli transmisji (TCP).

Chociaż WDM definiuje trzy typy sterowników urządzeń, nie wszystkie stosy sterowników dla danego urządzenia zawierają wszystkie typy sterowników urządzeń. Trzy typy sterowników urządzeń WDM to:

Kierowca autobusu : dla każdego autobusu na płycie głównej jest jeden sterownik autobusu, którego głównym zadaniem jest identyfikacja wszystkich urządzeń podłączonych do tej magistrali i reagowanie na zdarzenia typu plug and play. Microsoft dostarczy sterowniki magistrali jako część systemu operacyjnego, takie jak PCI , PnPISA , SCSI , USB i FireWire .

Sterownik funkcji : jest to główny sterownik urządzenia i zapewnia interfejs operacyjny dla urządzenia, obsługując operacje odczytu i zapisu. Sterowniki funkcji są pisane przez dostawców urządzeń, a ich interakcja ze sprzętem zależy od konkretnego sterownika magistrali występującego w systemie operacyjnym Windows.

Sterownik filtru : ten sterownik jest opcjonalny i może modyfikować zachowanie urządzenia, takie jak żądania wejścia i wyjścia. Te sterowniki można zaimplementować jako sterowniki filtrów niższego i wyższego poziomu.

Zorientowany obiektowo stos sterowników

Sterowniki funkcji i sterowniki autobusów są często implementowane jako pary kierowca / minidriver, co w praktyce jest parą klasa / miniklasa lub port / miniport.

Sterowniki magistrali dla urządzeń podłączonych do magistrali są implementowane jako sterowniki klas i są niezależne od sprzętu. Będą wspierać działanie określonego typu urządzenia. Systemy operacyjne Windows zawierają wiele sterowników klas, takich jak sterownik kbdclass.sys dla klawiatur. Z drugiej strony sterowniki Miniclass są dostarczane przez sprzedawcę urządzenia i obsługują tylko operacje specyficzne dla urządzenia, dla konkretnego urządzenia danej klasy.

Sterowniki portów obsługują ogólne operacje wejścia / wyjścia (I / O) dla interfejsu sprzętu peryferyjnego. Podstawowa funkcjonalność sterowników portów jest wymagana przez system operacyjny, a systemy operacyjne Windows integrują różne sterowniki portów. Na przykład sterownik portu i8042prt.sys dla mikrokontrolera 8042 łączy klawiatury PS / 2 z magistralą urządzeń peryferyjnych płyty głównej. Sterowniki miniportów, podobnie jak sterowniki miniclass, są dostarczane przez dostawców sprzętu i obsługują tylko specyficzne dla urządzenia operacje sprzętu peryferyjnego podłączonego do portu na płycie głównej.

Każdy sterownik przetwarzający żądanie wejścia / wyjścia dla urządzenia ma odpowiedni obiekt, który jest ładowany do pamięci głównej . Obiekt urządzenia jest tworzony przez system operacyjny Windows na podstawie skojarzonej klasy urządzeń. Obiekty urządzeń zawierają struktury typu DEVICE_OBJECT, które przechowują wskaźniki do ich sterownika. W czasie wykonywania te wskaźniki są używane do lokalizowania procedury wysyłania przez kierowcę i funkcji składowych. W stosie sterowników WDM obiekt sterownika filtru, znany jako górny filtr, otrzyma pakiet żądania we / wy (IRP) dla urządzenia od menedżera we / wy. Jeśli górny sterownik filtra nie może obsłużyć żądania, zlokalizuje obiekt sterownika o jeden stopień niżej w stosie sterowników. IRP jest przekazywany w dół stosu sterowników przez wywołanie funkcji IoCallDrive () i przetwarzany przez obiekt sterownika funkcji, znany również jako funkcjonalny obiekt urządzenia. Obiekt urządzenia sterownika funkcji może z kolei przekazać IRP do dolnego filtra, innego obiektu urządzenia filtrującego. Następnie IRP może zostać przekazany do sterownika autobusu, który działa jako fizyczny obiekt urządzenia. Obiekt sterownika magistrali znajduje się na dole stosu sterowników i współdziała z warstwą abstrakcji sprzętu , która jest częścią jądra systemu operacyjnego Windows i umożliwia działanie systemów operacyjnych Windows na różnych procesorach , różnych architekturach jednostek zarządzania pamięcią i różnorodne systemy komputerowe z różnymi architekturami magistrali I / O. Wykonywanie IRP jest zakończone, gdy którykolwiek z obiektów sterownika w stosie zwraca żądanie z powrotem do menedżera we / wy, z wynikiem i flagą stanu.

Sterowniki urządzeń dla różnych systemów operacyjnych Windows

Struktura WDM została opracowana przez firmę Microsoft w celu uproszczenia komunikacji między systemem operacyjnym a sterownikami wewnątrz jądra. W systemach operacyjnych Windows sterowniki są implementowane jako pliki .DLL lub .SYS bibliotek dołączanych dynamicznie. Sterowniki zgodne z WDM muszą przestrzegać zasad projektowania, inicjalizacji, plug-and-play, zarządzania energią i alokacji pamięci. W praktyce programiści sterowników WDM ponownie wykorzystują duże fragmenty kodu podczas tworzenia nowych sterowników obiektowych . Oznacza to, że sterowniki w stosie WDM mogą zawierać resztkowe funkcje, które nie są udokumentowane w specyfikacjach. Sterowniki, które przeszły test jakości firmy Microsoft, są podpisane cyfrowo przez firmę Microsoft. Microsoft Hardware Compatibility Testy i kierowca Development Kit obejmują testy niezawodności i stresu.

Sterownik urządzenia, który nie jest przeznaczony dla określonego składnika sprzętowego, może umożliwić działanie innego urządzenia. Dzieje się tak, ponieważ podstawowa funkcjonalność klasy urządzeń sprzętowych jest podobna. Na przykład funkcjonalność klasy karty wideo umożliwia sterownikowi Microsoft Basic Display Adapter współpracę z wieloma różnymi kartami wideo. Jednak zainstalowanie niewłaściwego sterownika dla urządzenia będzie oznaczać, że nie będzie można korzystać z pełnej funkcjonalności urządzenia, co może skutkować słabą wydajnością i destabilizacją systemu operacyjnego Windows. Dostawcy sprzętu mogą wydawać zaktualizowane sterowniki urządzeń dla określonych systemów operacyjnych Windows, aby poprawić wydajność, dodać funkcjonalność lub naprawić błędy . Jeśli urządzenie nie działa zgodnie z oczekiwaniami, należy pobrać i zainstalować najnowsze sterowniki urządzenia z witryny internetowej dostawcy.

Sterowniki urządzeń są przeznaczone dla określonych wersji systemu operacyjnego Windows, a sterowniki urządzeń dla poprzedniej wersji systemu Windows mogą nie działać poprawnie lub w ogóle nie działać z innymi wersjami. Ponieważ wiele sterowników urządzeń działa w trybie jądra, instalowanie sterowników dla poprzedniej wersji systemu operacyjnego może zdestabilizować system operacyjny Windows. Migracja komputera do wyższej wersji systemu operacyjnego Windows wymaga zatem zainstalowania nowych sterowników urządzeń dla wszystkich składników sprzętowych. Znalezienie aktualnych sterowników urządzeń i zainstalowanie ich dla systemu Windows 10 spowodowało komplikacje w procesie migracji.

Typowe problemy ze zgodnością sterowników urządzeń obejmują: 32-bitowy sterownik urządzenia jest wymagany dla 32-bitowego systemu operacyjnego Windows, a 64-bitowy sterownik urządzenia jest wymagany dla 64-bitowego systemu operacyjnego Windows. 64-bitowe sterowniki urządzeń muszą być podpisane przez firmę Microsoft, ponieważ działają w trybie jądra i mają nieograniczony dostęp do sprzętu komputerowego. W przypadku systemów operacyjnych starszych niż Windows 10 firma Microsoft zezwoliła dostawcom na samodzielne podpisywanie sterowników 64-bitowych, zakładając, że dostawcy przeprowadzili testy zgodności. Jednak 64-bitowe sterowniki systemu Windows 10 muszą być teraz podpisane przez firmę Microsoft. Dlatego dostawcy urządzeń muszą przedłożyć swoje sterowniki firmie Microsoft w celu przetestowania i zatwierdzenia. Pakiet instalacyjny sterownika zawiera wszystkie pliki w katalogu .inf i wszystkie pliki w pakiecie muszą zostać zainstalowane, w przeciwnym razie instalacja sterownika urządzenia może się nie powieść. W przypadku wersji systemu operacyjnego wcześniejszych niż Windows 10 pakiet nie zawierał wszystkich plików niezbędnych do instalacji sterownika, ponieważ wymaganie to nie było konsekwentnie egzekwowane. Niektóre instalatory sterowników urządzeń mają GUI interfejsu użytkownika , często wymagające wprowadzenia konfiguracji przez użytkownika. Brak interfejsu użytkownika nie oznacza, że ​​instalacja sterownika urządzenia nie powiodła się. Poza tym sterowniki urządzeń systemu Windows 10 nie mogą zawierać interfejsu użytkownika. Sieciowe Specyfikacja interfejsu sterownika (NDIS) 10.x służy do urządzeń sieciowych w systemie operacyjnym Windows 10. Sterowniki urządzeń sieciowych dla Windows XP używają NDIS 5.xi mogą działać z kolejnymi systemami operacyjnymi Windows, ale ze względu na wydajność sterowniki urządzeń sieciowych powinny implementować NDIS 6.0 lub nowszy. Podobnie WDDM to model sterownika dla systemu Windows Vista i nowszych, który zastępuje XPDM używany w sterownikach graficznych.

Menadżer urządzeń

Device Manager jest aplet Panel sterowania w systemach operacyjnych Microsoft Windows. Umożliwia użytkownikom przeglądanie i sterowanie sprzętem podłączonym do komputera. Umożliwia użytkownikom przeglądanie i modyfikowanie właściwości urządzeń sprzętowych, a także jest podstawowym narzędziem do zarządzania sterownikami urządzeń.

Krytyka

Model sterownika systemu Windows, mimo że stanowi znaczną poprawę w stosunku do modelu sterownika VxD i Windows NT używanego wcześniej, został skrytykowany przez twórców oprogramowania sterownika, przede wszystkim za:

  • Interakcje ze zdarzeniami związanymi z zarządzaniem energią i plug and play są trudne. Może to prowadzić do sytuacji, w których komputery z systemem Windows nie mogą poprawnie wejść lub wyjść z trybu uśpienia z powodu błędów w kodzie sterownika.
  • Anulowanie I / O jest trudne do poprawnego wykonania.
  • Złożony kod wsparcia standardowego jest wymagany dla każdego sterownika.
  • Nie ma wsparcia dla pisania sterowników wyłącznie w trybie użytkownika.

Pojawiło się również wiele obaw dotyczących jakości dokumentacji i próbek dostarczonych przez firmę Microsoft.

Z powodu tych problemów firma Microsoft wydała nowy zestaw struktur na bazie WDM, zwany Windows Driver Frameworks (WDF; dawniej Windows Driver Foundation), który obejmuje Kernel-Mode Driver Framework (KMDF) i User-Mode Driver Framework (UMDF) ). Windows Vista obsługuje zarówno czysty WDM, jak i nowszy WDF. KMDF jest również dostępny do pobrania dla Windows XP, a nawet Windows 2000, natomiast UMDF jest dostępny dla Windows XP i nowszych.

Zobacz też

Bibliografia

Linki zewnętrzne