Udostępnij przez


Obsługa zarządzania PnP i energią w sterownikach funkcji

sterowniki funkcji kontrolują działanie urządzenia i w związku z tym uzyskują dostęp do sprzętu. Te sterowniki muszą obsługiwać operacje PnP i zarządzania energią i zazwyczaj rejestrują kilka funkcji wywołania zwrotnego zdarzeń, gdy tworzą obiekty urządzeń.

Zazwyczaj funkcja sterownika EvtDriverDeviceAdd wywołuje funkcję wywołania zwrotnego zdarzeń WdfDeviceInitSetPnpPowerEventCallbacks w celu zarejestrowania następujących funkcji wywołania zwrotnego:

  • EvtDevicePrepareHardware, który dostarcza do sterownika zasoby przypisane przez system urządzenia. Sterownik może wykonywać operacje, takie jak mapowanie pamięci względnej magistrali urządzenia na wirtualną przestrzeń adresową procesora, dzięki czemu sprzęt jest dostępny dla sterownika.

  • EvtDeviceD0Entry, który wykonuje operacje, takie jak ładowanie oprogramowania układowego, które są wymagane za każdym razem, gdy urządzenie sterownika wchodzi w stan roboczy (D0).

  • EvtDeviceD0Exit, który wykonuje operacje wymagane za każdym razem, gdy urządzenie kierowcy opuszcza stan roboczy (D0) i przechodzi w stan niskiego zużycia energii.

  • EvtDeviceReleaseHardware, który zwalnia wszystkie zasoby systemowe przydzielone przez EvtDevicePrepareHardware.

Podobnie jak wszystkie funkcje wywołania zwrotnego zdefiniowane przez platformę, te z powyższej listy są opcjonalne. Musisz dostarczyć je tylko wtedy, gdy twój kierowca ich potrzebuje.

Sterowniki funkcji mogą wywoływać WdfDeviceSetPnpCapabilities i WdfDeviceSetPowerCapabilities, aby zgłosić możliwości PnP i zarządzania zasilaniem urządzenia do systemu operacyjnego.

Zazwyczaj do obsługi większości żądań we/wy używa się kolejek we/wy zarządzanych energią przez framework. Jeśli kolejka we/wy jest zarządzana energią, platforma dostarcza żądania do sterownika tylko wtedy, gdy jego urządzenie znajduje się w stanie roboczym (D0). Aby uzyskać więcej informacji na temat kolejek We/Wy zarządzanych energią, zobacz Power Management for I/O Queues.

Zazwyczaj sterownik funkcji urządzenia jest zarządzającym polityką zasilania dla stosu sterowników. Właściciel zasad zasilania określa odpowiedni stan zasilania urządzenia dla urządzenia i wysyła żądania do stosu sterowników urządzenia za każdym razem, gdy stan zasilania urządzenia powinien ulec zmianie. W przypadku sterowników opartych na strukturze struktura obsługuje tę odpowiedzialność, więc nie trzeba dostarczać kodu w sterowniku w celu żądania zmian stanu zasilania urządzenia.

Właściciel zasad zasilania ma dwie dodatkowe odpowiedzialności: kontroluje zdolność urządzenia do przechodzenia w stan niskiego poboru mocy, gdy urządzenie pozostaje bezczynne, a system pozostaje w swoim stanie pracy (S0), oraz kontroluje zdolność urządzenia do generowania sygnału wznawiania po wykryciu zewnętrznego zdarzenia w stanie niskiego poboru mocy. Jeśli urządzenie posiada funkcje bezczynności lub budzenia, sterownik funkcji może dostarczać dodatkowe funkcje wywołania zwrotnego. Aby uzyskać więcej informacji na temat obowiązków właściciela polityki zasilania, zobacz Własność polityki zasilania.