Bagikan melalui


Kartu PC dengan alamat register konfigurasi yang tidak lengkap

Jika perangkat Kartu PC 16-bit multifungsi memiliki daftar konfigurasi untuk setiap fungsi tetapi tidak berisi pointer dalam memori atribut ke semua set register (tidak mendukung tuple LONGLINK_MFC), vendor perangkat tersebut dapat menggunakan driver bus multifungsi yang disediakan sistem (mf.sys) tetapi harus menyediakan file INF kustom dan dukungan untuk fungsi individu.

Vendor perangkat tersebut pada platform berbasis NT dapat menggunakan driver fungsi yang disediakan sistem untuk perangkat multifungsi.

INF kustom untuk perangkat harus menentukan mf.sys sebagai driver fungsi untuk perangkat. Driver mf.sys yang disediakan sistem kemudian akan menghitung fungsi perangkat.

Lihat Menggunakan Driver Bus Multifungsi System-Supplied untuk informasi selengkapnya tentang menggunakan driver mf.sys yang disediakan sistem.

Vendor perangkat tersebut harus memberikan hal-hal berikut:

  • File INF kustom untuk perangkat multifungsi. (disediakan vendor)

    Vendor harus menyediakan file INF multifungsi yang menentukan mf.sys sebagai driver bus multifungsi, menentukan kelas "MultiFungsi" (dengan GUID terkait seperti yang didefinisikan dalam devguid.h), dan menyediakan alamat register konfigurasi yang hilang. Lihat informasi lebih lanjut nanti di bagian ini.

  • Driver fungsi PnP untuk setiap fungsi perangkat. (disediakan vendor)

    Karena driver bus multifungsi menangani semantik multifungsi, driver fungsi dapat menjadi driver yang sama yang digunakan ketika fungsi dipaketkan sebagai perangkat individual.

  • File INF untuk setiap fungsi perangkat. (disediakan vendor)

    File INF dapat berupa file yang sama yang digunakan saat fungsi dipaketkan sebagai perangkat individual. File INF tidak memerlukan semantik multifungsi khusus.

INF kustom untuk perangkat multifungsi tersebut harus berisi setidaknya satu bagian INF DDInstall.LogConfigOverride. Bagian ambil alih harus berisi entri MfCardConfig untuk setiap fungsi, mengidentifikasi lokasi setiap set register konfigurasi.

INF harus memulihkan semua persyaratan sumber daya yang ditentukan oleh perangkat karena jika konfigurasi penimpaan ada di INF, manajer PnP tidak menggunakan persyaratan sumber daya perangkat apa pun dari perangkat.

Tentukan entri MfCardConfig menggunakan sintaks yang dijelaskan dalam Inf LogConfig Directive.

Misalnya, pertimbangkan kutipan berikut dari INF kustom untuk perangkat Kartu PC multifungsi yang berisi modem dan adaptor jaringan:

;...
 
[DDInstall.LogConfigOverride]
LogConfig = DDInstall.Override0
 
[DDInstall.Override0]
IOConfig     =    3F8-3FF                  ; Com1
IOConfig     =    10@100-FFFF%FFF0         ; NIC I/O
IRQConfig    =    3,4,5,7,9,10,11          ; IRQ
MemConfig    =    2000@0-FFFFFFFF%FFFFE000 ; Memory Descriptor 0
MemConfig    =    1000@0-FFFFFFFF%FFFFF000 ; Memory Descriptor 1
MfCardConfig =    1000:47:0(A)
MfCardConfig =    1080:47:1
;...

Contoh menunjukkan dua entri MfCardConfig , satu untuk setiap fungsi perangkat. Entri MfCardConfig pertama berisi informasi berikut:

1000 (ConfigRegBase)
Menentukan bahwa ada sekumpulan register konfigurasi dalam memori atribut kartu saat offset 0x1000. Dalam contoh ini, informasi dalam register ini menjelaskan fungsi modem pada kartu.

47 (ConfigOptions)
Menentukan nilai heksadesimal untuk diprogram driver bus ke dalam daftar opsi konfigurasi di offset ConfigRegBase (0x1000).

0 (IoConfigIndex)
Menentukan bahwa sumber daya I/O untuk fungsi ini tercantum dalam entri IOConfig pertama di bagian ini. Indeks nol menunjukkan entri pertama, yang dalam contoh ini adalah "IOConfig = 3F8-3FF".

A (attrs)
Mengarahkan driver bus untuk mengaktifkan pengaktifan audio untuk fungsi ini, yang khas untuk modem.

Entri MfCardConfig kedua berisi informasi tentang fungsi kedua pada perangkat (adaptor jaringan, dalam contoh ini). Entri ini menentukan bahwa ada sekumpulan register konfigurasi kedua saat offset 0x1080. Driver bus akan menulis nilai ConfigOptions 0x47 ke daftar opsi konfigurasi untuk fungsi ini. Nilai IoConfigIndex satu mengarahkan driver bus untuk menggunakan entri IOConfig kedua di bagian ini (IOConfig = 10@100-FFFF%FFF0) untuk memprogram basis I/O dan membatasi register untuk fungsi ini.

Sertakan lebih dari satu DDInstall. Ganti bagian N di INF untuk menentukan lebih dari satu pilihan rentang port I/O non-berurut.

Jika perangkat menggunakan jendela memori yang tidak didasarkan pada nol, DDInstall. Ambil alih bagian N juga harus menyertakan entri PcCardConfig. Jika bagian ambil alih memiliki entri MfCardConfig dan entri PcCardConfig , driver bus PCMCIA mengabaikan nilai ConfigIndex dalam entri PcCardConfig dan hanya menggunakan informasi MemoryCardBaseN . Lihat Kartu PC Pendukung yang Memiliki Pendaftaran Konfigurasi Tidak Lengkap untuk informasi selengkapnya tentang entri PcCardConfig .