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.
Sterowniki dla urządzeń peryferyjnych wysyłających przerwania do wyprowadzeń we/wy ogólnego przeznaczenia (GPIO) uzyskują przerwania GPIO jako abstrakcyjne zasoby przerwania systemu Windows. Sterowniki struktury sterowników trybu jądra (KMDF) i sterowniki struktury sterowników trybu użytkownika (UMDF) otrzymują te zasoby za pośrednictwem funkcji wywołania zwrotnego zdarzeń EvtDevicePrepareHardware.
Sterowniki urządzeń peryferyjnych korzystających z zasobów przerwań opartych na GPIO mogą ignorować szczegóły implementacji niskiego poziomu, takie jak to, czy przerwanie jest generowane przez pin GPIO zamiast przez kontroler przerwań lub pin przerwań na mikroukładzie procesora.
Przerwanie oparte na gpIO jest zasobem typu CmResourceTypeInterrupt. Parametry konfiguracji dla tego przerwania są zawarte w elemencie u.Interrupt struktury CM_PARTIAL_RESOURCE_DESCRIPTOR opisującego zasób przerwania. Aby połączyć procedurę usługi przerwania (ISR) z przerwaniami, sterownik UMDF lub KMDF dostarcza zarówno nieprzetworzone, jak i przetłumaczone opisy zasobu przerwania do metody tworzenia przerwań.
Sterownik KMDF lub UMDF dla urządzenia peryferyjnego wywołuje metodę WdfInterruptCreate w celu połączenia ISR z przerwaniem urządzenia. Jednym z parametrów wejściowych tej metody jest wskaźnik do struktury WDF_INTERRUPT_CONFIG , która zawiera informacje o konfiguracji przerwania.
Jeśli sterownik urządzenia peryferyjnego używa więcej niż jednego zasobu przerwania GPIO, ten sterownik musi być świadomy kolejności, w jakiej te zasoby są wyświetlane na nieprzetworzonych i przetłumaczonych listach zasobów, które są dostarczane jako parametry wejściowe do funkcji EvtDevicePrepareHardware funkcji lub metody OnPrepareHardware . Zasoby na tych listach są wyświetlane w kolejności, w jakiej są opisane w oprogramowaniu układowym platformy, które muszą być zgodne z kolejnością oczekiwaną przez sterownik.