Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Każdy sterownik fizycznego, logicznego lub wirtualnego urządzenia, do którego kod trybu użytkownika może kierować żądania we/wy, musi udostępnić nazwę swoim klientom w trybie użytkownika. Przy użyciu nazwy aplikacja w trybie użytkownika (lub inny składnik systemu) identyfikuje urządzenie, z którego żąda operacji we/wy.
W Windows NT 4.0 i starszych wersjach systemu operacyjnego opartego na NT sterowniki nazywały swoje obiekty urządzeń, a następnie konfigurowały łącza symboliczne w rejestrze między tymi nazwami i widoczną dla użytkownika nazwą logiczną Win32.
Począwszy od Windows 2000, sterowniki nie nadają nazw obiektom urządzeń. Zamiast tego korzystają z interfejsów urządzeń pogrupowanych według klas interfejsów urządzeń. Klasa interfejsu urządzenia to sposób eksportowania funkcji urządzeń i sterowników do innych składników systemu, w tym innych sterowników, a także aplikacji w trybie użytkownika. Sterownik może zarejestrować i włączyć wystąpienie interfejsu urządzenia klasy interfejsu urządzenia dla każdego obiektu urządzenia, do którego mogą być wysyłane żądania we/wy trybu użytkownika. Każda klasa interfejsu urządzenia powinna reprezentować funkcjonalność koncepcyjną, którą każdy interfejs urządzenia w tej klasie powinien obsługiwać lub reprezentować, na przykład określony kontrakt we/wy.
Każda klasa interfejsu urządzenia jest skojarzona z identyfikatorem GUID. System definiuje identyfikatory GUID dla typowych klas interfejsów urządzeń w plikach nagłówków specyficznych dla urządzenia. Dostawcy mogą tworzyć dodatkowe klasy interfejsów urządzeń.
Na przykład trzy różne typy myszy mogą rejestrować interfejsy urządzeń, które należą do tej samej klasy interfejsu urządzenia, nawet jeśli jedna jest podłączana przez port USB, druga przez port szeregowy, a trzecia przez port podczerwieni. Każdy sterownik rejestruje swoje urządzenie jako urządzenie należące do klasy interfejsu GUID_DEVINTERFACE_MOUSE. Ten identyfikator GUID jest zdefiniowany w pliku nagłówka Ntddmou.h.
Sterowniki mogą rejestrować i włączać interfejsy urządzeń dla urządzenia, które kontrolują, dla każdej klasy interfejsów urządzeń, której funkcjonalność jest obsługiwana przez urządzenie i sterownik. Na przykład sterownik dysku, który można zamontować, powinien zarejestrować się zarówno dla klasy interfejsu dysku (GUID_DEVINTERFACE_DISK), jak i klasy urządzenia montowalnego (MOUNTDEV_MOUNTED_DEVICE_GUID).
Gdy sterownik rejestruje wystąpienie interfejsu urządzenia klasy interfejsu urządzenia, menedżer we/wy kojarzy urządzenie i identyfikator GUID klasy interfejsu urządzenia z nazwą łącza symbolicznego. Sterownik musi udostępnićinterfejs urządzenia, aby sterownik lub aplikacja mogły używać tego linku symbolicznego do wysyłania operacji we/wy. Rejestracja nazwy łącza zachowuje się po ponownym uruchomieniu systemu, ale interfejs urządzenia musi być włączony przez sterownik przy każdym wyliczeniu urządzenia. Aplikacja korzystająca z określonej klasy interfejsu urządzenia może wysyłać zapytania dotyczące wystąpień interfejsów urządzeń w tej klasie i otrzymać listę nazw linków symbolicznych reprezentujących urządzenia, które obsługują interfejs. Aplikacja może następnie użyć nazwy linku symbolicznego jako celu dla żądań we/wy.
Nie należy mylić interfejsów urządzeń z interfejsami, które sterowniki mogą eksportować w odpowiedzi na żądanie IRP_MN_QUERY_INTERFACE . To żądanie IRP służy do przekazywania punktów wejścia procedur między sterownikami trybu jądra.