Membuat Daftar Persyaratan Sumber Daya

Saat driver bus mendeteksi perangkat anak, driver bertanggung jawab untuk membuat daftar persyaratan sumber daya untuk perangkat. Setiap item dalam daftar adalah konfigurasi logis untuk perangkat.

Setelah driver melaporkan perangkat selama enumerasi bus, kerangka kerja memanggil fungsi panggilan balik EvtDeviceResourceRequirementsQuery driver. Fungsi panggilan balik ini menerima handel ke objek daftar persyaratan sumber daya yang mewakili daftar persyaratan sumber daya kosong.

Driver kemudian harus melakukan hal berikut untuk menambahkan informasi ke daftar persyaratan sumber daya:

  • Buat konfigurasi logika kosong.

    Untuk setiap konfigurasi logis yang akan ditentukan driver, driver harus memanggil WdfIoResourceListCreate untuk membuat konfigurasi logis kosong.

  • Tambahkan deskriptor sumber daya ke konfigurasi logis.

    Untuk menambahkan deskriptor sumber daya ke konfigurasi logis, driver harus melakukan hal berikut, untuk setiap jenis sumber daya perangkat keras yang diperlukan perangkat:

    1. Isi struktur IO_RESOURCE_DESCRIPTOR yang dialokasikan driver, yang menentukan rentang nilai yang valid untuk sumber daya tertentu.
    2. Panggil WdfIoResourceListAppendDescriptor atau WdfIoResourceListInsertDescriptor untuk menambahkan konten struktur IO_RESOURCE_DESCRIPTOR ke konfigurasi logis.

    Jika perangkat menggunakan lebih dari satu instans jenis sumber daya, semua driver dalam tumpukan yang mengakses sumber daya harus mengetahui urutan penambahan sumber daya. Misalnya, jika perangkat memerlukan dua rentang alamat port I/O, semua driver yang mengakses deskriptor sumber daya harus mengetahui urutan di mana kedua rentang ditambahkan ke konfigurasi logis.

  • Tambahkan konfigurasi logis ke daftar persyaratan sumber daya.

    Untuk menambahkan konfigurasi logis ke daftar persyaratan sumber daya perangkat, driver memanggil WdfIoResourceRequirementsListAppendIoResList atau WdfIoResourceRequirementsListInsertIoResList.

    Saat menetapkan sumber daya ke perangkat, manajer PnP mencoba mencocokkan persyaratan konfigurasi logis pertama dalam daftar. Jika sumber daya yang diperlukan untuk konfigurasi tersebut tidak tersedia, manajer PnP cocok dengan konfigurasi berikutnya dalam daftar sumber daya mana yang tersedia.

    Jika driver Anda mendukung perangkat non-PnP, driver Anda biasanya juga harus memanggil WdfIoResourceRequirementsListSetSlotNumber dan WdfIoResourceRequirementsListSetInterfaceType.

Setelah fungsi panggilan balik EvtDeviceResourceRequirementsQuery driver kembali, kerangka kerja meneruskan daftar persyaratan sumber daya ke manajer PnP.