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.
Jeśli sterownik określił sekwencyjną lub równoległą metodę wysyłania dla kolejki we/wy, struktura wywołuje funkcję wywołania zwrotnego dostarczonego przez sterownik za każdym razem, gdy jest gotowy do dostarczenia jednego z żądań kolejki do sterownika.
Dla każdej kolejki I/O sterownik może udostępnić jedną lub więcej z następujących funkcji wywołania zwrotnego, które są nazywane procedurami obsługi żądań:
EvtIoRead
Framework wywołuje funkcję zwrotną EvtIoRead kolejki we/wy, gdy w kolejce dostępne jest żądanie odczytu.
EvtIoWrite
Platforma wywołuje funkcję zwrotną EvtIoWrite dla kolejki we/wy, gdy żądanie zapisu jest dostępne w kolejce.
EvtIoDeviceControl
Platforma wywołuje funkcję callback EvtIoDeviceControl kolejki I/O, gdy żądanie sterowania urządzenia jest dostępne w kolejce.
EvtIoInternalDeviceControl
Struktura wywołuje funkcję zwrotną EvtIoInternalDeviceControl kolejki operacji we/wy, gdy wewnętrzne żądanie sterowania urządzeniem we/wy jest dostępne w kolejce.
EvtIoDefault
Struktura wywołuje funkcję wywołania zwrotnego EvtIoDefault kolejki we/wy, gdy jakiekolwiek żądanie jest dostępne, o ile sterownik nie dostarczył odpowiedniej funkcji wywołania zwrotnego specyficznej dla typu żądania.
Sterownik rejestruje funkcje wywołania zwrotnego, gdy wywołuje funkcję WdfIoQueueCreate w celu utworzenia kolejki I/O dla urządzenia.
Każda z tych funkcji wywołania zwrotnego otrzymuje dwa argumenty wejściowe: dojście do żądania we/wy, które platforma dostarcza do sterownika i dojście do kolejki we/wy, która przechowywała żądanie. Funkcja wywołania zwrotnego może określić urządzenie docelowe przez wywołanie funkcji WdfIoQueueGetDevice.
Framework wywołuje procedury obsługi żądań sterownika w dowolnym kontekście wątku. Sterownik nie powinien długo czekać, działając w dowolnym kontekście wątku. W niektórych przypadkach sterownik może używać obiektów dyspozytora jądra jako mechanizmów synchronizacji. Aby uzyskać informacje o tym, kiedy sterownik może czekać na obiekty dyspozytora i co zrobić, gdy nie może, zobacz Wprowadzenie do obiektów dyspozytora jądra.