Udostępnij przez


Rozszerzenie programu SPB Framework (SpbCx)

Rozszerzenie struktury SPB (SpbCx) to rozszerzenie dostarczone przez system do Kernel-Mode Driver Framework (KMDF). SpbCx współpracuje ze sterownikiem kontrolera SPB w celu wykonywania operacji we/wy na urządzeniach peryferyjnych podłączonych do prostej magistrali peryferyjnej (SPB), takiej jak I2C lub SPI.

Sterownik kontrolera SPB wykonuje wszystkie operacje specyficzne dla sprzętu. Te operacje obejmują uzyskiwanie dostępu do rejestrów sprzętowych kontrolera SPB w celu skonfigurowania kontrolera i inicjowania transferów magistrali do i z urządzeń peryferyjnych połączonych z SPB.

SpbCx wykonuje zadania przetwarzania, które są wspólne dla urządzeń kontrolera SPB. W szczególności SpbCx zarządza kolejkami żądań I/O dla kontrolera SPB. Te kolejki zawierają żądania wejścia/wyjścia dla urządzeń peryferyjnych dołączonych do magistrali. Dostawca sprzętu kontrolera SPB dostarcza sterownik kontrolera SPB do wykonywania wszystkich operacji specyficznych dla sprzętu, które są wymagane do obsługi tych żądań.

Podział obowiązków między spbCx a sterownikiem kontrolera SPB jest następujący:

  • SpbCx zarządza funkcjami ogólnymi, które są wspólne dla wszystkich elementów członkowskich klasy urządzenia kontrolera SPB. SpbCx zapewnia znaczną część domyślnej obsługi żądań i sterowania przepływem dla sterownika kontrolera. Począwszy od systemu Windows 8, SpbCx jest składnikiem skrzynki odbiorczej systemu operacyjnego Windows.

  • Sterownik kontrolera SPB zarządza funkcjami specyficznymi dla sprzętu na urządzeniu kontrolera SPB. Dostawcy sprzętu dostarczają sterowniki kontrolerów dla urządzeń kontrolera SPB.

SpbCx i sterownik kontrolera SPB działają w trybie jądra. SpbCx jest rozszerzeniem struktury, a sterownik kontrolera SPB jest sterownikiem KMDF. Sterownik kontrolera SPB wywołuje metody w interfejsie sterownika urządzeń SpbCx (DDI) do wykonywania operacji specyficznych dla SPB i wywołuje metody KMDF do wykonywania innych, bardziej ogólnych funkcji sterownika. Aby uzyskać informacje na temat tworzenia sterownika KMDF, zobacz Kompilowanie i ładowanie sterownika Framework-Based.

Sterowniki kontrolerów SPB statycznie łączą się z punktami wejścia DDI w bibliotece wycinków SpbCx, Spbcx.lib. Podczas wykonywania ta biblioteka przeprowadza niezbędne negocjacje wersji sterownika, aby dynamicznie połączyć się z modułem rozszerzenia frameworku, Spbcx.sys, który implementuje DDI. Sterownik kontrolera SPB, który wymaga określonej wersji Spbcx.sys może bezpiecznie połączyć się z wersją Spbcx.sys, która ma wyższy numer wersji. Jednak ten sterownik nie może połączyć się z wersją Spbcx.sys o niższym numerze wersji. Interfejs żądania We/Wy SpbCx jest podobnie zgodny z poprzednimi wersjami.

Mimo że dostawca sprzętu ma możliwość pisania monolitycznego sterownika kontrolera SPB, który nie korzysta z spbCx, konieczne jest znaczne nakłady pracy. Dla porównania sterownik kontrolera korzystający z spbCx jest łatwiejszy do opracowania i jest zazwyczaj bardziej niezawodny.