Udostępnij przez


Ustawianie flag obiektów urządzenia na potrzeby zarządzania energią

W procedurze AddDevice każdy sterownik tworzy obiekt urządzenia (filtruj obiekt urządzenia (DO), funkcjonalny obiekt urządzenia (FDO) lub obiekt urządzenia fizycznego (PDO) i ustawia flagi DO_XXX w obiekcie urządzenia w celu opisania atrybutów urządzenia i konfiguracji sterownika. Następujące flagi obiektu urządzenia dotyczą zarządzania energią.

Flaga Opis
Do przyrostu prądu Wskazuje, że prąd pobierany przez urządzenie gwałtownie wzrasta, gdy urządzenie jest włączane po raz pierwszy. Ten wzrost lub "inrush" (prąd rozruchowy) trwa przez krótki okres, po którym prąd pobierany przez urządzenie spada do niższego poziomu operacyjnego.
DO_POWER_PAGABLE Wskazuje, że sterownik korzysta z pamięci stronicowanej. Począwszy od systemu Windows 2000, sterowniki, które można stronicować, muszą ustawić flagę DO_POWER_PAGABLE. Menedżer zasilania wywołuje takie sterowniki na poziomie IRQL = PASSIVE_LEVEL. Aby uzyskać więcej informacji na temat sterowników stronicowalnych, zobacz Making Drivers Pageable (Tworzenie sterowników stronicowalnych).

Flagi obiektu urządzenia są zwykle ustawiane przez sterownik magistrali podczas tworzenia obiektu PDO dla urządzenia. Jednak niektóre sterowniki funkcji mogą wymagać zmiany wartości tych flag w ramach procedur AddDevice . Począwszy od systemu Windows Vista, system operacyjny nie wymaga, aby wszystkie obiekty urządzeń w stosie urządzenia miały te same flagi związane z zasilaniem. Jednak w systemach Windows Server 2003, Windows XP i Windows 2000 wszystkie obiekty urządzeń w stosie urządzeń powinny mieć te same flagi związane z zasilaniem.

Począwszy od systemu Windows 2000 sterowniki urządzeń, które znajdują się w ścieżce stronicowania, nie mogą ustawiać flagi DO_POWER_PAGABLE. Sterownik znajduje się w ścieżce stronicowania, jeśli bierze udział w operacjach we/wy w pliku stronicowania. Sterowniki, które nie ustawiają tej flagi, muszą być wywoływane przy IRQL = DISPATCH_LEVEL. Aby uzyskać więcej informacji, zobacz Ograniczenia dotyczące procedur wysyłania.

Ogólnie rzecz biorąc, sterowniki nie powinny zmieniać wartości flagi DO_POWER_PAGABLE dla sterownika magistrali, a sterownik nigdy nie może ustawić tej flagi, jeśli sterownik niższego poziomu ją wyczyścił. W przypadku obsługi przejść obejmujących żądania stronicowania PnP (zazwyczaj w odpowiedzi na IRP_MJ_PNP z żądaniem IRP_MN_DEVICE_USAGE_NOTIFICATION), sterownik pamięci masowej musi dokładnie sekwencjonować ustawienie i wyczyszczenie flagi.

Przed wyczyszczeniem flagi DO_DEVICE_INITIALIZING, sterowniki dla urządzeń wymagających gwałtownego poboru mocy przy starcie muszą ustawić flagę DO_POWER_INRUSH w obiekcie urządzenia. Tylko jeden sterownik w stosie urządzenia, zazwyczaj sterownik magistrali (PDO), musi ustawić flagę DO_POWER_INRUSH dla urządzenia. Flaga powiadamia menedżera zasilania, że takie urządzenia muszą być zasilane pojedynczo, w kolejności z innymi takimi urządzeniami, aby uniknąć przeciążenia zasilania. Menedżer zasilania zapewnia, że tylko jedna funkcja IRP inrush jest aktywna w dowolnym miejscu w systemie w danym momencie.

Począwszy od systemu Windows Vista, sterowniki mogą ustawiać zarówno flagę DO_POWER_PAGABLE, jak i flagę DO_POWER_INRUSH. W systemach Windows Server 2003, Windows XP i Windows 2000 sterowniki nie mogą ustawić flagi DO_POWER_PAGABLE i flagi DO_POWER_INRUSH.