SPB Framework Uzantısı (SpbCx)

SPB çerçeve uzantısı (SpbCx), Kernel-Mode Driver Framework (KMDF) için sistem tarafından sağlanan bir uzantıdır. SpbCx, I2C veya SPI gibi basit bir çevre yolu (SPB) ile bağlantılı çevre birimi cihazlarında G/Ç işlemleri gerçekleştirmek için bir SPB denetleyici sürücüsüyle birlikte çalışır.

SPB denetleyicisi sürücüsü, donanıma özgü tüm işlemleri gerçekleştirir. Bu işlemler, denetleyiciyi yapılandırmak ve SPB'ye bağlı çevre birimi cihazlarına veri yolu aktarımları başlatmak için SPB denetleyicisinin donanım yazmaçlarına erişmeyi içerir.

SpbCx, SPB denetleyici cihazları için ortak olan işleme görevlerini gerçekleştirir. Özellikle SpbCx, bir SPB denetleyicisi için G/Ç isteği kuyruklarını yönetir. Bu kuyruklar, veriyoluna bağlı çevre birimi cihazları için Girdi/Çıktı istekleri içerir. SPB denetleyicisinin donanım satıcısı, bu istekleri işlemek için gereken tüm donanıma özgü işlemleri gerçekleştirmek için bir SPB denetleyici sürücüsü sağlar.

SpbCx ile SPB denetleyici sürücüsü arasındaki sorumlulukların bölünmesi aşağıdaki gibidir:

  • SpbCx, SPB denetleyicisi cihaz sınıfının tüm üyeleri için ortak olan genel işlevleri yönetir. SpbCx, denetleyici sürücüsü için varsayılan istek işleme ve akış denetiminin büyük bir kısmını sağlar. Windows 8'den başlayarak SpbCx, Windows işletim sisteminin bir gelen kutusu bileşenidir.

  • SPB denetleyicisi sürücüsü, SPB denetleyicisi cihazında donanıma özgü işlevleri yönetir. Donanım satıcıları SPB denetleyici cihazları için denetleyici sürücüleri sağlar.

SpbCx ve SPB denetleyici sürücüsü çekirdek modunda çalışır. SpbCx bir çerçeve uzantısıdır ve SPB denetleyici sürücüsü bir KMDF sürücüsüdür. SPB denetleyicisi sürücüsü SPB'ye özgü işlemleri gerçekleştirmek için SpbCx cihaz sürücüsü arabirimindeki (DDI) yöntemleri çağırır ve diğer, daha genel sürücü işlevlerini gerçekleştirmek için KMDF yöntemlerini çağırır. KMDF sürücüsü oluşturma hakkında bilgi için bkz. Framework-Based Sürücüsü Oluşturma ve Yükleme.

SPB denetleyicisi sürücüleri SpbCx saplama kitaplığındaki Spbcx.lib DDI giriş noktalarına statik olarak bağlanır. Çalışma zamanında, bu kitaplık DDI'yı uygulayan Spbcx.sysçerçeve uzantısı modülüne dinamik olarak bağlanmak için gerekli sürücü sürümü anlaşması gerçekleştirir. belirli bir Spbcx.sys sürümünü gerektiren bir SPB denetleyicisi sürücüsü, daha yüksek bir sürüm numarasına sahip Spbcx.sys sürümüne güvenli bir şekilde bağlanabilir. Ancak, bu sürücü daha düşük bir sürüm numarasına sahip Spbcx.sys sürümüne bağlanamaz. SpbCx G/Ç istek arabirimi benzer şekilde geriye dönük olarak uyumludur.

Donanım satıcısı SpbCx kullanmayan monolitik bir SPB denetleyici sürücüsü yazma seçeneğine sahip olsa da, bunu yapmak için önemli bir çaba gerekir. Karşılaştırmak gerekirse, SpbCx kullanan bir denetleyici sürücüsünün geliştirilmesi daha kolaydır ve genellikle daha güvenilirdir.