Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W poniższym scenariuszu węzeł urządzenia zawiera sterownik magistrali KMDF i co najmniej jedną funkcję KMDF lub sterowniki filtrów, które obsługują urządzenie PnP.
Gdy użytkownik podłącza urządzenie do magistrali podczas działania systemu, sterownik magistrali urządzenia i struktura wykonują następujące zadania:
Sterownik magistrali urządzenia wykrywa urządzenie i wywołuje element WdfChildListAddOrUpdateChildDescriptionAsPresent. (Ten proces jest nazywany "wyliczeniem dynamicznym").
System wywołuje funkcję callback EvtChildListCreateDevice sterownika magistrali, aby sterownik magistrali mógł wywołać funkcję WdfDeviceCreate w celu utworzenia obiektu urządzenia systemu dla urządzenia fizycznego (PDO).
Struktura wywołuje funkcje wywołania zwrotnego EvtDeviceResourcesQuery i EvtDeviceResourceRequirementsQuery, aby określić zasoby sprzętowe systemu, które są wymagane przez urządzenie.
Aby uzyskać więcej informacji na temat sekwencji zasilania sterownika magistrali KMDF, zobacz Power-Up Sequence for a Bus Driver (SekwencjaPower-Up dla sterownika magistrali).
Następnie menedżer PnP ustala, jakie dodatkowe sterowniki (sterowniki funkcji i sterowniki filtrów) są wymagane przez urządzenie. Jeśli te sterowniki nie zostały jeszcze załadowane, menedżer PnP ładuje je i wywołuje procedury DriverEntry . Dla każdej funkcji lub sterownika filtru są wykonywane następujące akcje:
Struktura wywołuje funkcję zwrotną EvtDriverDeviceAdd każdego dodatkowego sterownika, aby sterownik mógł wywołać WdfDeviceCreate w celu utworzenia obiektu urządzenia struktury, który reprezentuje urządzenie dla sterownika. Sterowniki funkcji tworzą funkcjonalny obiekt urządzenia (FDO), a sterowniki filtrów tworzą obiekt urządzenia filtru (Filter DO).
Struktura wywołuje funkcję wywołania zwrotnego każdego sterownika i filtru EvtDeviceFilterRemoveResourceRequirements, a następnie funkcję wywołania zwrotnego każdego sterownika EvtDeviceFilterAddResourceRequirements. Bezpośrednio przed uruchomieniem urządzenia framework wywołuje funkcję zwrotną EvtDeviceRemoveAddedResources. Te trzy funkcje wywołania zwrotnego umożliwiają sterownikom filtrów i funkcji modyfikowanie listy zasobów sprzętowych, których wymaga urządzenie, zanim menedżer PnP przypisze zasoby do urządzenia. Aby uzyskać więcej informacji, zobacz Zasoby sprzętowe sterowników Framework-Based
Ramowa struktura zapewnia, że urządzenie osiągnęło stan zasilania roboczego (D0).
Dla każdej funkcji i sterownika filtru, który obsługuje urządzenie, struktura wykonuje następujące czynności w sekwencji jeden sterownik naraz, począwszy od sterownika, który jest najniższy w stosie sterowników:
- Struktura wywołuje funkcję zwrotną sterownika EvtDevicePrepareHardware (jeśli istnieje) i przekazuje listę zasobów sprzętowych, które menedżer PnP przypisał do urządzenia.
- Struktura wywołuje funkcję EvtDeviceD0Entry wywołania zwrotnego (jeśli istnieje).
- Struktura wywołuje funkcję wywołania zwrotnego EvtInterruptEnable (jeśli istnieje) dla każdego przerwania, a następnie wywołuje funkcję wywołania zwrotnego EvtDeviceD0EntryPostInterruptsEnabled (jeśli istnieje), aby sterownik mógł włączyć przerwania urządzenia.
- Jeśli sprzęt i sterownik obsługują DMA, struktura wywołuje EvtDmaEnablerFill, EvtDmaEnablerEnableoraz EvtDmaEnablerSelfManagedIoStart funkcje wywołań zwrotnych (jeśli istnieją) dla każdego utworzonego kanału DMA.
- Struktura wywołuje funkcję wywołania zwrotnego EvtChildListScanForChildren (jeśli istnieje).
- Framework uruchamia wszystkie kolejki we/wy zarządzane zasilaniem urządzenia.
- Jeśli sterownik korzysta z wejścia/wyjścia zarządzanego przez siebie, framework wywołuje funkcję zwrotną sterownika EvtDeviceSelfManagedIoInit.
Aby uzyskać więcej informacji na temat sekwencji zasilania dla funkcji KMDF lub sterowników filtrów, Power-Up Sequence for a Function or Filter Driver (Sekwencja funkcji lub sterownika filtru).