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.
Sumber daya perangkat keras adalah jalur bus yang dapat ditugaskan dan dapat diatasi yang memungkinkan perangkat periferal dan prosesor sistem untuk berkomunikasi satu sama lain. Sumber daya perangkat keras biasanya mencakup alamat port I/O, vektor interupsi, dan blok alamat memori relatif bus.
Sebelum sistem dapat berkomunikasi dengan instans perangkat, manajer PnP harus menetapkan sumber daya perangkat keras ke instans perangkat berdasarkan pengetahuan tentang sumber daya mana yang tersedia dan instans perangkat mana yang mampu digunakan. Sumber daya ditetapkan ke setiap simpul perangkat di pohon perangkat (dengan asumsi bahwa perangkat yang diwakili membutuhkan sumber daya dan sumber daya tersebut tersedia). Manajer PnP melacak sumber daya perangkat keras menggunakan daftar, yang dikaitkan dengan node perangkat. Ini menggunakan dua jenis daftar:
Daftar Persyaratan Sumber Daya
Perangkat biasanya dirancang untuk beroperasi dalam berbagai penugasan sumber daya. Misalnya, perangkat mungkin hanya memerlukan satu vektor interupsi, tetapi mungkin dapat menggunakan salah satu dari berbagai vektor. Untuk setiap instans perangkat, manajer PnP mempertahankan daftar persyaratan sumber daya yang menentukan semua rentang sumber daya perangkat keras tempat perangkat dapat beroperasi. Nama daftar berasal dari fakta bahwa manajer PnP diperlukan untuk memilih sumber daya dari daftar ini saat menetapkannya ke perangkat.
Kode kernel mode menentukan daftar persyaratan sumber daya menggunakan struktur IO_RESOURCE_REQUIREMENTS_LIST (baik sebagai input ke rutinitas sistem atau sebagai respons terhadap IRPs). Kode mode pengguna menentukan daftar persyaratan sumber daya menggunakan struktur manajer konfigurasi PnP sebagai input ke fungsi manajer konfigurasi PnP.
Daftar Sumber Daya
Saat manajer PnP menetapkan sumber daya ke perangkat, manajer PnP melacak penugasan ini dengan membuat daftar sumber daya yang ditetapkan untuk setiap instans perangkat. Daftar ini dapat disebut daftar penetapan sumber daya, tetapi nama tersebut biasanya disingkat ke daftar sumber daya. Manajer PnP dapat mengubah konten daftar sumber daya saat perangkat ditambahkan atau dihapus dari sistem dan sumber daya kemudian direalokasikan. (Sumber daya juga dapat ditetapkan oleh PnP BIOS. Selain itu, perangkat lunak penginstalan—menggunakan file INF atau input pengguna—dapat memaksa manajer PnP untuk menetapkan sumber daya tertentu ke perangkat.)
Kode dalam mode kernel menentukan daftar sumber daya dengan menggunakan struktur CM_RESOURCE_LIST (baik sebagai input ke rutin sistem atau sebagai respons terhadap Permintaan I/O (IRP)). Kode mode pengguna menentukan daftar sumber daya menggunakan struktur manajer konfigurasi PnP sebagai input ke fungsi manajer konfigurasi PnP.
Manajer PnP menyimpan daftar persyaratan sumber daya dan daftar sumber daya dalam registri, di mana mereka dapat dilihat dengan menggunakan Regedit.exe. Driver dapat mengakses daftar ini secara tidak langsung melalui rutinitas Plug and Play dan Minor IRPs Plug and Play. Aplikasi mode pengguna dapat menggunakan fungsi manajer konfigurasi PnP. (Driver dan aplikasi tidak boleh langsung mengakses daftar ini menggunakan fungsi registri karena format penyimpanan dapat berubah dalam rilis mendatang.)
Konfigurasi logis
Daftar persyaratan sumber daya dan daftar sumber daya berisi satu atau beberapa konfigurasi logis. Setiap konfigurasi logis mengidentifikasi berbagai sumber daya yang dapat diterima, atau sekumpulan sumber daya tertentu untuk instans perangkat tertentu. Selain itu, setiap konfigurasi logis untuk instans perangkat termasuk dalam salah satu jenis konfigurasi logis. Jenis konfigurasi tercantum di bawah ini. Beberapa konfigurasi logis, dari jenis yang sama atau berbeda, mungkin ditetapkan ke setiap instans perangkat.
Jenis konfigurasi logis untuk daftar persyaratan sumber daya
Konfigurasi Dasar
Daftar persyaratan sumber daya yang mengidentifikasi rentang sumber daya yang disediakan oleh perangkat Plug and Play. Seorang driver harus mengembalikan daftar ini ketika menerima IRP IRP_MN_QUERY_RESOURCE_REQUIREMENTS IRP. (Konfigurasi dasar untuk perangkat non-PnP dapat dijelaskan dalam file INF. Dalam hal ini, perangkat lunak penginstalan perangkat membaca file INF dan memanggil fungsi manajer konfigurasi PnP untuk membuat daftar persyaratan.)
Konfigurasi Terseleksi
Daftar persyaratan sumber daya yang telah disediakan ke tumpukan driver, mungkin dimodifikasi, lalu dikembalikan oleh tumpukan driver, sebagai respons terhadap IRP IRP_MN_FILTER_RESOURCE_REQUIREMENTS. Manajer PnP menggunakan konfigurasi yang difilter yang dihasilkan sebagai dasar untuk mengalokasikan sumber daya.
Mengesampingkan Konfigurasi
Daftar persyaratan sumber daya yang mengambil alih konfigurasi dasar. Biasanya, penginstal perangkat membuat konfigurasi penimpaan jika file INF perangkat mengandung bagian INF DDInstall.LogConfigOverride. Konfigurasi penimpaan tidak akan dihapus jika perangkat tersebut dicabut secara fisik dari sistem.
Jenis konfigurasi logis untuk daftar sumber daya
Konfigurasi Boot
Daftar sumber daya yang mengidentifikasi sumber daya yang ditetapkan ke instans perangkat saat sistem di-boot. (Untuk perangkat PnP, ini adalah konfigurasi yang disediakan oleh BIOS; untuk perangkat non-PnP, sumber daya ini mungkin dipilih oleh jumper pada kartu.) Driver harus mengembalikan daftar sumber daya ini saat menerima IRP IRP_MN_QUERY_RESOURCES . (Konfigurasi boot dapat kosong sebagian jika BIOS tidak dapat menentukan semua sumber daya yang digunakan oleh perangkat.) Manajer PnP dapat mengubah daftar ini jika perangkat dihapus atau dimulai ulang. Untuk perangkat non-PnP, jenis konfigurasi ini dapat digunakan alih-alih konfigurasi paksa, dalam hal ini memiliki prioritas konfigurasi yang lebih rendah daripada konfigurasi paksa yang setara. Hanya satu konfigurasi boot yang dapat ada untuk setiap instans perangkat.
Konfigurasi Paksa
Daftar sumber daya yang mengidentifikasi sumber daya yang harus digunakan instans perangkat. Konfigurasi paksa mencegah manajer PnP menetapkan sumber daya lain ke instans perangkat. Alat penginstal perangkat mungkin membuat konfigurasi paksa berdasarkan informasi yang terkandung dalam INF atau diterima dari pengguna. Konfigurasi paksa tidak dihapus jika perangkatnya dihapus secara fisik dari sistem. Hanya satu konfigurasi paksa yang dapat ada untuk setiap instans perangkat.
Konfigurasi yang Dialokasikan
Daftar sumber daya yang mengidentifikasi sumber daya yang saat ini digunakan oleh instans perangkat. Hanya satu konfigurasi yang dialokasikan yang dapat ada untuk setiap instans perangkat.
Driver perangkat bertanggung jawab untuk menentukan konfigurasi dasar, konfigurasi yang difilter, dan konfigurasi boot dari perangkat yang kompatibel dengan PnP, serta untuk mengembalikan informasi tersebut sebagai respons terhadap IRP yang dikirim oleh manajer PnP. (Untuk informasi selengkapnya, lihat Menambahkan Perangkat PnP ke Sistem yang Sedang Berjalan.) Perangkat lunak penginstalan driver dapat membuat konfigurasi penggantian, konfigurasi paksa, dan, untuk perangkat non-PnP, konfigurasi boot. Manajer PnP mengelola konfigurasi yang dialokasikan untuk setiap instans perangkat.
Prioritas ditetapkan ke setiap konfigurasi saat dibuat. Jika manajer PnP menemukan bahwa instans perangkat telah diberi beberapa konfigurasi logis dengan jenis yang sama, ia mencoba menggunakan yang memiliki prioritas tertinggi terlebih dahulu. Jika konfigurasi tersebut menghasilkan konflik sumber daya, konfigurasi akan mencoba konfigurasi dengan prioritas lebih rendah berikutnya. (Untuk daftar prioritas konfigurasi, lihat CM_Add_Empty_Log_Conf.)