Udostępnij przez


Tworzenie obiektów urządzeń w sterowniku magistrali

Każdy sterownik magistrali oznaczony jako i musi utworzyć obiekt urządzenia ramowego, gdy wykryje, że urządzenie podrzędne jest połączone z urządzeniem nadrzędnym. Urządzenie nadrzędne jest zazwyczaj magistralą, ale może być również urządzeniem wielofunkcyjnym, dla którego każda funkcja wymaga oddzielnego zestawu sterowników (na przykład karty dźwiękowej obsługującej cyfrowe audio i MIDI). Obiekty urządzeń tworzone przez sterowniki magistrali są nazywane obiektami urządzeń fizycznych (PDO), ponieważ każdy reprezentuje rzeczywiste połączenie jednego elementu sprzętu (podrzędnego) z innym (element nadrzędny).

Proces identyfikowania i raportowania urządzeń połączonych z magistralą jest nazywany enumeracją magistrali .

Aby uzyskać więcej informacji na temat enumeracji urządzeń na magistrali, zobacz Enumeracja urządzeń namagistrali.

Kierowca autobusu może wywołać zestaw metod inicjowania obiektu urządzenia , które przechowują informacje w strukturze WDFDEVICE_INIT. Ponadto kierowcy autobusów mogą wywoływać metody inicjowania framework PDO .

Tworzenie obiektu urządzenia platformy dla urządzenia podrzędnego, które zostało wyliczone, zwykle obejmuje następujące kroki:

  • Rejestrowanie funkcji wywołania zwrotnego specyficznych dla sterownika magistrali.

    Większość kierowców autobusów wywołuje WdfPdoInitSetEventCallbacks, ponieważ muszą określić zasoby sprzętowe systemu wymagane przez urządzenie. Aby uzyskać więcej informacji na temat określania zasobów sprzętowych, zobacz Zasoby sprzętowe dla sterowników Framework-Based. Dodatkowe funkcje wywołania zwrotnego można zarejestrować, jeśli urządzenie i sterownik obsługują wysuwanie.

  • Raportowanie ciągów identyfikacji urządzeń .

    Kierowcy autobusów muszą zgłaszać ciągi identyfikacyjne urządzenia, wywołując WdfPdoInitAssignDeviceID, WdfPdoInitAssignInstanceID, WdfPdoInitAddCompatibleID, i WdfPdoInitAddHardwareID dla każdego typu ciągu obsługiwanego przez urządzenie. Ponadto sterowniki magistrali korzystające z wersji 1.9 lub nowszej frameworku mogą wywoływać WdfPdoInitAssignContainerID.

  • Raportowanie, czy sterownik magistrali może obsługiwać urządzenie w trybie nieprzetworzonym.

    Jeśli sterownik magistrali obsługuje tryb surowy dla urządzenia, musi wywołać WdfPdoInitAssignRawDevice.

  • Udostępnianie tekstu z możliwością wyświetlania opisującego urządzenie.

    Kierowcy autobusów wywołują WdfPdoInitAddDeviceText i WdfPdoInitSetDefaultLocale w celu udostępnienia tekstu opisującego urządzenie użytkownikom w wielu językach.

  • Tworzenie obiektu urządzenia.

    Ostatnim krokiem tworzenia obiektu urządzenia jest wywołanie WdfDeviceCreate.

Jeśli sterownik napotka błąd podczas inicjowania struktury WDFDEVICE_INIT uzyskanej z WdfPdoInitAllocate, sterownik musi wywołać WdfDeviceInitFree zamiast WdfDeviceCreate.

Po utworzeniu obiektu urządzenia przez sterownik magistrali zazwyczaj wywołuje WdfDeviceSetPnpCapabilities i WdfDeviceSetPowerCapabilities, aby zgłosić możliwości Plug and Play oraz zarządzania energią urządzenia.

Każdy sterownik magistrali jest również sterownikiem funkcji dla adaptera magistrali. W związku z tym sterownik musi również podać funkcję wywołania zwrotnego EvtDriverDeviceAdd. Ta funkcja wywołania zwrotnego tworzy funkcjonalny obiekt urządzenia (FDO) dla każdego adaptera magistrali w systemie. Aby uzyskać więcej informacji na temat tworzenia obiektów FDO, zobacz Tworzenie obiektów urządzeń w sterowniku funkcji.