Bagikan melalui


Objek Daftar Sumber Daya

Driver sistem PortCls mengimplementasikan antarmuka IResourceList untuk keuntungan driver miniport. Objek IResourceList mewakili daftar sumber daya konfigurasi, yang merupakan daftar sumber daya perangkat keras sistem yang ditetapkan manajer Plug and Play ke perangkat pada waktu mulai perangkat. Untuk informasi selengkapnya tentang penetapan sumber daya pada waktu mulai, lihat Memulai Perangkat di Driver Fungsi.

Daftar sumber daya berisi jenis sumber daya berikut:

  • Vektor interupsi

  • Saluran DMA

  • Alamat port I/O

  • Blok alamat memori relatif bus

Untuk informasi tentang jenis sumber daya, lihat Sumber Daya Perangkat Keras.

Objek IResourceList merangkum versi daftar sumber daya yang diterjemahkan dan tidak diterjemahkan (atau "mentah"). Untuk informasi selengkapnya tentang sumber daya yang diterjemahkan dan tidak diterjemahkan, lihat Pemetaan alamat Bus-Relative ke Alamat Virtual.

Antarmuka IResourceList mendukung metode berikut:

IResourceList::AddEntry

IResourceList::AddEntryFromParent

IResourceList::FindTranslatedEntry

IResourceList::FindUntranslatedEntry

IResourceList::NumberOfEntries

IResourceList::NumberOfEntriesOfType

IResourceList::TranslatedList

IResourceList::UntranslatedList

File header Portcls.h mendefinisikan sekumpulan makro untuk menyederhanakan penanganan objek daftar sumber daya. Makro ini menghasilkan panggilan ke metode IResourceList . Untuk informasi selengkapnya, lihat IResourceList.

Selain itu, Portcls.h mendefinisikan sepasang fungsi untuk membuat daftar sumber daya:

PcNewResourceList

PcNewResourceSublist

Untuk memulai perangkat pada kartu adaptor audio, sistem operasi memanggil rutinitas perangkat mulai driver adaptor (lihat Urutan Startup) dan meneruskan objek daftar sumber daya sebagai parameter input. Daftar ini berisi semua sumber daya sistem yang telah ditetapkan sistem operasi ke driver adaptor.

Dalam rutinitas perangkat mulai, driver adaptor memulai semua perangkat driver adaptor (perangkat gelombang, perangkat MIDI, dan sebagainya). Untuk mengelola setiap perangkat, driver adaptor membuat objek driver miniport dan objek driver port terkait. Driver adaptor membagi sumber daya dalam daftar sumber daya di antara berbagai perangkat di kartu adaptor. Untuk tujuan ini, driver biasanya memanggil PcNewResourceSublist untuk membuat objek daftar sumber daya untuk setiap perangkat. Driver kemudian memanggil IResourceList::AddEntryFromParent sebanyak yang diperlukan untuk menyalin sumber daya yang dipilih dari daftar induk ke dalam berbagai daftar turunan. Selain itu, driver adaptor mungkin menetapkan beberapa sumber daya ke dirinya sendiri.

Selanjutnya, rutinitas perangkat mulai memanggil metode IPort::Init setiap driver port dan meneruskan objek daftar sumber daya perangkat (berisi daftar anak) sebagai parameter input. Setiap metode IPort::Init driver port memanggil metode IMiniportXxx::Init driver miniport yang sesuai, yang merupakan salah satu dari berikut ini:

IMiniportDMus::Init

IMiniportMidi::Init

IMiniportTopology::Init

IMiniportWaveCyclic::Init

IMiniportWavePci::Init

Metode IPort::Init meneruskan objek daftar sumber dayanya ke metode IMiniportXxx::Init sebagai parameter input. Driver miniport kemudian dapat menggunakan saluran DMA, interupsi, dan sumber daya sistem lainnya dalam daftar sumber daya.

Untuk contoh kode, lihat contoh driver audio Sb16 di Microsoft Windows Driver Kit (WDK).