Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Pengontrol SPB adalah perangkat yang mengontrol bus periferal sederhana (SPB) dan yang mentransfer data ke dan dari perangkat periferal yang terhubung ke SPB. Vendor perangkat keras untuk pengontrol SPB menyediakan driver pengontrol SPB untuk mengelola fungsi perangkat keras di pengontrol.
Dimulai dengan Windows 8, ekstensi kerangka kerja SPB (SpbCx) menyederhanakan pengembangan driver pengontrol untuk bus periferal sederhana (SPB). SpbCx adalah ekstensi yang disediakan sistem ke Kernel-Mode Driver Framework (KMDF). Vendor perangkat keras untuk perangkat pengontrol SPB memasok driver pengontrol untuk melakukan semua operasi driver khusus perangkat keras. Driver ini berkomunikasi dengan SpbCx untuk melakukan operasi yang khusus untuk pengontrol SPB, dan berkomunikasi langsung dengan KMDF untuk melakukan operasi driver generik.
Misalnya, driver pengontrol SPB biasanya memanggil metode WdfDeviceInitSetPowerEventCallbacks di KMDF untuk mendaftar untuk menerima panggilan balik peristiwa daya, dan memanggil metode WdfInterruptCreate untuk menghubungkan rutinitas layanan interupsi driver (ISR) ke gangguan dari pengontrol SPB. Untuk melakukan operasi khusus SPB, pengontrol SPB berkomunikasi dengan SpbCx melalui antarmuka driver perangkat SpbCx (DDI).
SpbCx bekerja sama dengan driver pengontrol SBP untuk menangani permintaan I/O untuk perangkat periferal yang terhubung ke SPB. SpbCx melakukan tugas pemrosesan yang umum untuk driver pengontrol SPB. Tugas-tugas ini termasuk mengelola antrean permintaan I/O untuk pengontrol SPB. Antrean ini berisi permintaan I/O dari driver yang mengelola perangkat periferal yang terhubung ke bus. Driver pengontrol SPB melakukan semua operasi khusus perangkat keras yang diperlukan untuk menangani permintaan ini.
Diagram berikut menunjukkan driver pengontrol SPB dan SpbCx.
Driver pengontrol SPB dan SpbCx keduanya berjalan dalam mode kernel, dan berkomunikasi satu sama lain melalui SpbCx DDI. Driver pengontrol SPB memanggil metode dukungan driver yang diimplementasikan oleh SpbCx. SpbCx memanggil fungsi panggilan balik peristiwa yang diimplementasikan oleh driver pengontrol SPB.
Driver yang mengirim permintaan I/O ke pengontrol SPB adalah driver mode kernel yang menggunakan Kernel-Mode Driver Framework (KMDF), atau driver mode pengguna yang menggunakan User-Mode Driver Framework (UMDF). Driver ini dapat mengirim permintaan baca dan tulis untuk mentransfer data ke dan dari perangkat periferal yang terhubung dengan SPB. Selain itu, driver dapat mengirim permintaan kontrol I/O (IOCTL) untuk melakukan operasi khusus SPB.
Driver pengontrol SPB secara langsung mengakses daftar perangkat keras perangkat pengontrol SPB untuk memulai transfer data ke dan dari perangkat periferal yang terhubung ke SPB. Untuk SPB seperti I2C, transfer data ini terjadi pada kecepatan yang relatif lambat. Meskipun register perangkat keras pengontrol SPB kemungkinan akan dipetakan ke memori, register perangkat periferal harus diakses secara serial melalui SPB.
Sebagai respons terhadap permintaan I/O untuk mentransfer data ke atau dari perangkat periferal yang terhubung dengan SPB, driver pengontrol SPB memulai transfer bus, menandai permintaan I/O sebagai tertunda, dan kembali tanpa menunggu transfer selesai. Kemudian, ketika perangkat keras pengontrol SPB menyelesaikan transfer, pengontrol menandakan gangguan, dan ISR di driver pengontrol SPB menyelesaikan permintaan I/O yang tertunda atau memulai transfer berikutnya dalam operasi I/O yang diminta.
Hanya driver yang dapat mengirim permintaan I/O langsung ke pengontrol SPB. Ketika aplikasi mode pengguna mentransfer data ke atau dari perangkat periferal yang terhubung dengan SPB, aplikasi harus mengandalkan driver perangkat periferal SPB untuk mengirim permintaan baca atau tulis yang sesuai ke pengontrol SPB.