Udostępnij przez


Umożliwianie przejść do stanu D3cold

Wszystkie wersje systemu Windows umożliwiają korzystanie z urządzenia D3cold podczas uśpienia komputera (w jednym ze stanów niskiego zasilania systemu, od S1 do S4). Przed opuszczeniem stanu S0 przez komputer sterowniki funkcji, sterowniki magistrali i sterowniki filtrów współpracują ze sobą, aby przenieść urządzenie do D3hot. Gdy komputer przejdzie w stan Sx o niskiej mocy, to przejście ma efekt uboczny przeniesienia urządzenia z D3hot do D3cold.

Począwszy od systemu Windows 8, urządzenie może wejść i zamknąć D3cold, gdy komputer pozostaje w S0. Sterownik, który jest właścicielem zasad zasilania (PPO) dla urządzenia, może włączać i wyłączać te przejścia do stanu D3cold. Sterownik nie powinien umożliwiać urządzeniu przejścia do stanu D3cold, chyba że urządzenie potrafi w razie potrzeby obudzić się z D3cold i wznowić normalne działanie po przejściu do D0.

Gdy urządzenie przechodzi do stanu D3, początkowo wchodzi w podstan D3hot. Z poziomu D3hot urządzenie może przejść do stanu D0 lub D3cold. W odpowiedzi na zdarzenie wybudzenia lub żądanie wejścia/wyjścia, urządzenie przechodzi do D0 z D3hot. W przeciwnym razie urządzenie może pozostać w D3hot lub może przejść z D3hot do D3cold. Aby uzyskać więcej informacji na temat tych przejść, zobacz diagram stanu zasilania urządzenia w artykule Device Power States (Stany zasilania urządzenia).

Sterownik nie inicjuje przejścia urządzenia z D3hot do D3cold. Zamiast tego przejście odbywa się, gdy wszystkie inne urządzenia, które dzielą wspólne źródło zasilania z tym urządzeniem, znajdują się w D3hot i są przygotowane do przejścia w D3cold. Gdy ostatnie z tych urządzeń wejdzie w stan D3hot, podstawowe sterowniki magistrali i oprogramowanie układowe systemu usuwają źródło zasilania, a urządzenia jednocześnie przechodzą w stan D3cold.

Sterownik PPO dla urządzenia informuje system operacyjny, czy włączyć przejście urządzenia z D3hot do D3cold. Sterownik może dostarczyć te informacje w pliku INF, który instaluje urządzenie, lub sterownik może wywołać procedurę SetD3ColdSupport w czasie wykonywania, aby dynamicznie włączyć lub wyłączyć przejścia urządzenia do D3cold. Aby uzyskać więcej informacji, zobacz Using the GUID_D3COLD_SUPPORT_INTERFACE Driver Interface (Korzystanie z interfejsu sterownika GUID_D3COLD_SUPPORT_INTERFACE).

Po umożliwieniu urządzeniu przejścia do stanu D3cold sterownik gwarantuje następujące zachowanie:

  • Urządzenie może tolerować przejście z D3hot do D3cold, gdy komputer ma pozostać w S0.
  • Urządzenie będzie działać prawidłowo po powrocie do D0 z D3cold.

Urządzenie, które nie spełnia wymagań, może po wprowadzeniu D3cold być niedostępne do czasu ponownego uruchomienia komputera lub wejścia w stan uśpienia. Jeśli urządzenie musi być w stanie zasygnalizować zdarzenie wznawiania z każdego stanu Dx o niskiej mocy, do którego przechodzi, przejście do D3cold nie powinno być włączone, chyba że sterownik jest pewien, że sygnał wznawiania urządzenia będzie działać w D3cold.

Umieszczenie urządzenia w D3cold niekoniecznie oznacza, że wszystkie źródła zasilania urządzenia zostały usunięte; oznacza to tylko, że źródła zasilania, które umożliwiają komunikację z urządzeniem za pośrednictwem magistrali, znikną. Urządzenie może nadal być w stanie pobierać wystarczającą ilość mocy, aby zasygnalizować procesorowi zdarzenie wznawiania. Na przykład karta sieciowa Ethernet, której odłączono główne źródło zasilania, może pobierać zasilanie z kabla Ethernet.

Ponieważ D3cold jest stanem, w którym magistrala nie może być używana do komunikowania się z urządzeniem, kierowca nie może bezpośrednio umieścić urządzenia w D3cold. Zamiast tego sterownik najpierw wywołuje procedurę PoRequestPowerIrp , aby zażądać protokołu IRP zasilania D3 (żądanie IRP_MN_SET_POWER ze stanem docelowym = PowerDeviceD3), aby przenieść urządzenie z D0 do D3hot. Po wejściu w D3hot urządzenie może, ale nie musi przejść z D3hot do D3cold. Urządzenie przechodzi w stan D3cold tylko wtedy, gdy zasilanie magistrali jest odłączane, co następuje, jeśli sterownik magistrali wyłącza magistralę lub gdy oprogramowanie układowe wyłącza zasilanie sekcji platformy sprzętowej.