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.
Gdy kierowca magistrali wykryje urządzenie podrzędne, sterownik jest odpowiedzialny za utworzenie listy wymagań dotyczących zasobów dla urządzenia. Każdy element na liście jest konfiguracją logiczną dla urządzenia.
Gdy sterownik zgłasza urządzenie, podczas wyliczania magistrali, struktura wywołuje funkcję wywołania zwrotnego EvtDeviceResourceRequirementsQuery. Ta funkcja wywołania zwrotnego odbiera dojście do obiektu listy wymagań zasobów, który reprezentuje pustą listę wymagań dotyczących zasobów.
Następnie sterownik musi wykonać następujące czynności, aby dodać informacje do listy wymagań dotyczących zasobów:
Utwórz pustą konfigurację logiczną.
Dla każdej konfiguracji logicznej określonej przez sterownik sterownik musi wywołać element WdfIoResourceListUtwórz , aby utworzyć pustą konfigurację logiczną.
Dodaj deskryptory zasobów do konfiguracji logicznej.
Aby dodać deskryptory zasobów do konfiguracji logicznej, sterownik musi wykonać następujące czynności dla każdego typu zasobu sprzętowego wymaganego przez urządzenie:
- Wypełnij strukturę IO_RESOURCE_DESCRIPTOR przydzieloną przez sterownik, która określa zakres prawidłowych wartości dla określonego zasobu.
- Wywołaj WdfIoResourceListAppendDescriptor lub WdfIoResourceListInsertDescriptor, aby dodać zawartość struktury IO_RESOURCE_DESCRIPTOR do konfiguracji logicznej.
Jeśli urządzenie używa więcej niż jednego wystąpienia typu zasobu, wszystkie sterowniki w stosie, które uzyskują dostęp do zasobu, muszą mieć świadomość kolejności dodawania zasobów. Jeśli na przykład urządzenie wymaga dwóch zakresów adresów portów we/wy, wszystkie sterowniki uzyskujące dostęp do deskryptorów zasobów muszą mieć świadomość kolejności, w jakiej dwa zakresy są dodawane do konfiguracji logicznej.
Dodaj konfigurację logiczną do listy wymagań dotyczących zasobów.
Aby dodać konfigurację logiczną do listy wymagań dotyczących zasobów urządzenia, sterownik wywołuje element WdfIoResourceRequirementsListAppendIoResList lub WdfIoResourceRequirementsListInsertIoResList.
Podczas przypisywania zasobów do urządzenia menedżer PnP próbuje dopasować wymagania pierwszej konfiguracji logicznej na liście. Jeśli zasoby wymagane do tej konfiguracji nie są dostępne, menedżer PnP dobiera następną konfigurację na liście, dla której zasoby są dostępne.
Jeśli twój sterownik obsługuje urządzenie inne niż PnP, sterownik zazwyczaj musi również wywołać funkcje WdfIoResourceRequirementsListSetSlotNumber i WdfIoResourceRequirementsListSetInterfaceType.
Po tym jak funkcja zwrotna EvtDeviceResourceRequirementsQuery zostanie wykonana, framework przekazuje listę wymagań dotyczących zasobów do menedżera PnP.