Udostępnij za pośrednictwem


Obsługa urządzeń wysuwalnych

Urządzenia wysuwalne to urządzenia, które można wstawić do i wyjąć ze stacji dokującej. Zazwyczaj przed usunięciem urządzenia należy wyłączyć zasilanie magistrali urządzenia.

Jeśli urządzenie jest usuwalne, sterownik magistrali urządzenia musi ustawić członek EjectSupported w strukturze WDF_DEVICE_PNP_CAPABILITIES urządzenia.

Gdy kierowca autobusu ustali, że jedno z wyliczonych urządzeń podrzędnych ma zostać wyrzucone, wywołuje polecenie WdfPdoRequestEject lub WdfChildListRequestChildEject. Na przykład kierowca autobusu może wykryć, że użytkownik naciśnął przycisk wysuwania.

Gdy sterownik wywołuje WdfChildListRequestChildEject lub WdfPdoRequestEject, menedżer PnP używa scenariusza usuwania uporządkowanego w celu poinformowania sterowników urządzenia, że urządzenie jest usuwane. Po tym, jak struktura wywoła funkcję wywołania zwrotnego EvtDeviceReleaseHardware w sterowniku magistrali dla magistrali urządzenia, struktura wywołuje funkcję wywołania zwrotnego EvtDeviceEject sterownika magistrali, która wykonuje wszelkie operacje niezbędne do fizycznego wyrzucenia urządzenia.

W przypadku, gdy wyrzucenie urządzenia powoduje również wyrzucenie dodatkowych urządzeń, kierowca autobusu może przechowywać listę relacji wyrzucania. Gdy użytkownik usunie urządzenie, menedżer PnP informuje sterowniki urządzeń na liście, że ich urządzenia również są usuwane. Aby zachować listę relacji wyrzucenia, kierowca autobusu może użyć metod WdfPdoAddEjectionRelationsPhysicalDevice, WdfPdoRemoveEjectionRelationsPhysicalDevice i WdfPdoClearEjectionRelationsDevices .

Jeśli urządzenie może być zablokowane w stacji dokującej, kierowca autobusu musi ustawić element członkowski LockSupported w strukturze WDF_DEVICE_PNP_CAPABILITIES urządzenia. Sterownik magistrali musi również dostarczyć funkcję wywołania zwrotnego EvtDeviceSetLock, która blokuje urządzenie, aby uniemożliwić wysuwanie, lub odblokowuje urządzenie, aby umożliwić wysuwanie.