Udostępnij przez


Wprowadzenie do obiektów urządzeń

System operacyjny reprezentuje urządzenia według obiektów urządzeń. Co najmniej jeden obiekt urządzenia jest skojarzony z każdym urządzeniem. Obiekty urządzeń służą jako obiekt docelowy wszystkich operacji na urządzeniu.

Sterowniki trybu jądra muszą utworzyć co najmniej jeden obiekt urządzenia dla każdego urządzenia z następującymi wyjątkami:

  • Sterowniki typu mini, które mają skojarzony sterownik klasy lub portu, nie muszą tworzyć własnych obiektów urządzenia. Sterownik klasy lub portu tworzy obiekty urządzenia i wysyła operacje do minidrivera.

  • Sterowniki będące częścią podsystemów specyficznych dla typu urządzenia, takie jak sterowniki miniportu NDIS, mają obiekty urządzeń utworzone przez podsystem.

Zapoznaj się z dokumentacją określonego typu urządzenia, aby określić, czy sterownik tworzy własne obiekty urządzenia.

Niektóre obiekty urządzeń nie reprezentują urządzeń fizycznych. Sterownik programowy, który obsługuje żądania we/wy, ale nie przekazuje tych żądań do sprzętu, nadal musi utworzyć obiekt urządzenia, aby reprezentować cel swoich operacji.

Aby uzyskać więcej informacji na temat sposobu tworzenia obiektów urządzenia przez sterownik, zobacz Tworzenie obiektu urządzenia.

Urządzenia są zwykle reprezentowane przez wiele obiektów urządzeń, po jednym dla każdego sterownika w stosie sterowników, który obsługuje żądania we/wy dla urządzenia. Obiekty urządzenia są zorganizowane w stos urządzenia. Za każdym razem, gdy operacja jest wykonywana na urządzeniu, system przekazuje strukturę danych IRP do sterownika dla najwyższego obiektu urządzenia w stosie urządzenia. Każdy sterownik albo obsługuje IRP, albo przekazuje go do sterownika skorelowanego z kolejnym niższym obiektem urządzenia w stosie urządzeń. Aby uzyskać więcej informacji na temat stosów urządzeń, zobacz Przykładowy stos urządzeń WDM. Aby uzyskać więcej informacji o IRP, zobacz Handling IRPs.

Obiekty urządzeń są reprezentowane przez struktury DEVICE_OBJECT , które są zarządzane przez menedżera obiektów. Menedżer obiektów zapewnia te same możliwości dla obiektów urządzeń, które wykonuje w przypadku innych obiektów systemowych. W szczególności obiekt urządzenia może mieć nazwę, a nazwany obiekt urządzenia może mieć otwarte uchwyty. Aby uzyskać więcej informacji na temat nazwanych obiektów urządzeń, zobacz Nazwane obiekty urządzeń.

System zapewnia dedykowany magazyn dla każdego obiektu urządzenia o nazwie rozszerzenie urządzenia, którego sterownik może używać do przechowywania określonego urządzenia. Rozszerzenie urządzenia jest tworzone i zwalniane przez system wraz z obiektem urządzenia. Aby uzyskać więcej informacji, zobacz Device Extensions (Rozszerzenia urządzeń).

Na poniższej ilustracji przedstawiono relację między obiektami urządzenia i menedżerem we/wy.

diagram ilustrujący obiekt urządzenia.

Na rysunku przedstawiono elementy struktury DEVICE_OBJECT, które są interesujące dla piszącego sterowniki. Aby uzyskać więcej informacji o tych elementach członkowskich, zobacz Tworzenie obiektu urządzenia, inicjowanie obiektu urządzenia i właściwości obiektów urządzeń.