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.
Statyczne wyliczenie to zdolność sterownika do wykrywania oraz zgłaszania istnienia urządzeń podczas inicjowania systemu, z ograniczoną możliwością zgłaszania kolejnych zmian w konfiguracji systemu.
Sterowniki magistrali mogą używać wyliczenia statycznego, jeśli liczba i typ urządzeń lub podnitów funkcjonalnych są wstępnie określone i trwałe i nie zależą od konfiguracji systemu, na którym jest uruchomiony sterownik.
Na przykład sterownik karty dźwiękowej może pełnić rolę sterownika magistrali i tworzyć oddzielne obiekty urządzeń fizycznych (PDO) dla każdej z możliwości karty, takich jak MIDI, audio i joystick.
Statyczne listy podrzędne
Platforma umożliwia sterownikom obsługę wyliczania statycznego, udostępniając statyczne listy podrzędne. Każda statyczna lista podrzędna reprezentuje listę urządzeń podrzędnych połączonych z urządzeniem nadrzędnym. Sterownik magistrali dla urządzenia nadrzędnego musi zidentyfikować urządzenia podrzędne elementu nadrzędnego, dodać je do statycznej listy podrzędnej urządzenia nadrzędnego i utworzyć obiekt PDO dla każdego urządzenia podrzędnego.
Tworzenie statycznej listy podrzędnej
Za każdym razem, gdy sterownik tworzy obiekt urządzenia struktury, który reprezentuje obiekt urządzenia funkcjonalnego (FDO) dla urządzenia, struktura tworzy pustą, statyczną listę podrzędną urządzenia.
Gdy struktura wywołuje funkcję wywołania zwrotnego sterownika magistrali EvtDriverDeviceAdd, funkcja ta musi wywołać WdfDeviceCreate, aby utworzyć FDO dla urządzenia nadrzędnego. Aby uzyskać więcej informacji na temat tworzenia FDO, zobacz Tworzenie obiektów urządzeń w sterowniku funkcji.
Następnie sterownik musi wyliczyć elementy podrzędne urządzenia nadrzędnego, utworzyć obiekty PDO dla elementów podrzędnych i dodać elementy podrzędne do listy podrzędnej.
Opcjonalnie kierowca może wywołać WdfDeviceSetBusInformationForChildren, aby udostępnić strukturę z informacjami o autobusie. Jest to zalecane, ponieważ ułatwia urządzeniom podrzędnym i aplikacjom identyfikowanie szyny.
Aby utworzyć pdO dla wykrytego urządzenia podrzędnego, sterownik magistrali musi:
Wywołaj metodę WdfPdoInitAllocate , aby uzyskać strukturę WDFDEVICE_INIT .
Zainicjuj strukturę WDFDEVICE_INIT.
Wywołaj WdfDeviceCreate, aby utworzyć obiekt urządzenia strukturalnego reprezentujący PDO.
Aby uzyskać więcej informacji na temat tworzenia obiektu PDO, zobacz Tworzenie obiektów urządzeń w sterowniku magistrali.
Po wywołaniu funkcji WdfDeviceCreate sterownik musi wywołać metodę WdfFdoAddStaticChild , aby dodać urządzenie podrzędne do listy podrzędnej.
Modyfikowanie statycznej listy podrzędnej
Ze względu na to, że sterowniki powinny używać statycznych list podrzędnych tylko do konfiguracji urządzeń, które są wstępnie określone i trwałe, istnieje niewielka potrzeba modyfikacji statycznej listy podrzędnej po jej utworzeniu. Jeśli sterownik określi, że urządzenie podrzędne stało się niedostępne, sterownik może wywołać WdfPdoMarkMissing. Jeśli urządzenie podrzędne pozostaje dostępne, ale przestaje reagować i staje się nieużyteczne, sterownik powinien ustawić członek Niepowodzenie struktury WDF_DEVICE_STATE na WdfTrue a następnie wywołać metodę WdfDeviceSetDeviceState.
Przechodzenie po statycznej liście podrzędnych elementów
Jeśli musisz pobrać zawartość statycznej listy podrzędnej, sterownik może przejść przez listę, wykonując następujące czynności:
Wywoływanie metody WdfFdoLockStaticChildListForIteration.
Wywoływanie metody WdfFdoRetrieveNextStaticChild tyle razy, ile jest to konieczne.
Wywoływanie metody WdfFdoUnlockStaticChildListFromIteration.