Membuat Objek Perangkat di Driver Bus
Setiap driver bus harus membuat objek perangkat kerangka kerja ketika menemukan bahwa perangkat anak terhubung ke perangkat induk. Perangkat induk biasanya adalah bus, tetapi juga dapat menjadi perangkat multifungsi yang setiap fungsinya memerlukan satu set driver terpisah (seperti kartu suara yang mendukung audio digital dan MIDI). Objek perangkat yang dibuat driver bus disebut objek perangkat fisik (PDO) karena masing-masing mewakili koneksi aktual dari satu perangkat keras (anak) ke perangkat keras lainnya (induk).
Proses mengidentifikasi dan melaporkan perangkat yang terhubung ke bus disebut enumerasi bus.
Jika pengemudi bus melakukan enumerasi bus dinamis, fungsi panggilan balik EvtChildListCreateDevice menerima handel ke struktur WDFDEVICE_INIT .
Jika sopir bus melakukan enumerasi bus statis, ia harus memanggil WdfPdoInitAllocate untuk mendapatkan handel ke struktur WDFDEVICE_INIT.
Untuk informasi selengkapnya tentang enumerasi bus, lihat Menghitung Perangkat di Bus.
Driver bus dapat memanggil serangkaian metode inisialisasi objek perangkat kerangka kerja, yang menyimpan informasi dalam struktur WDFDEVICE_INIT . Selain itu, pengemudi bus dapat memanggil metode inisialisasi PDO kerangka kerja.
Membuat objek perangkat kerangka kerja untuk perangkat anak yang dijumlahkan biasanya mencakup langkah-langkah berikut:
Mendaftarkan fungsi panggilan balik khusus pengemudi bus.
Sebagian besar driver bus memanggil WdfPdoInitSetEventCallbacks, karena mereka harus menentukan sumber daya perangkat keras sistem yang diperlukan perangkat. Untuk informasi selengkapnya tentang menentukan sumber daya perangkat keras, lihat Sumber Daya Perangkat Keras untuk Driver Framework-Based. Fungsi panggilan balik tambahan dapat didaftarkan jika perangkat dan driver mendukung ejeksi.
Melaporkan string identifikasi perangkat.
Driver bus harus melaporkan string identifikasi perangkat dengan memanggil WdfPdoInitAssignDeviceID, WdfPdoInitAssignInstanceID, WdfPdoInitAddCompatibleID, dan WdfPdoInitAddHardwareID untuk setiap jenis string yang didukung perangkat. Selain itu, driver bus yang menggunakan kerangka kerja versi 1.9 atau yang lebih baru dapat memanggil WdfPdoInitAssignContainerID.
Melaporkan apakah pengemudi bus dapat mendukung perangkat dalam mode mentah.
Jika driver bus mendukung mode mentah untuk perangkat, driver tersebut harus memanggil WdfPdoInitAssignRawDevice.
Menyediakan teks yang dapat ditampilkan yang menjelaskan perangkat.
Driver bus memanggil WdfPdoInitAddDeviceText dan WdfPdoInitSetDefaultLocale untuk memberikan teks yang menjelaskan perangkat kepada pengguna, dalam beberapa bahasa.
Membuat objek perangkat.
Langkah terakhir dalam membuat objek perangkat adalah memanggil WdfDeviceCreate.
Jika driver mengalami kesalahan saat menginisialisasi struktur WDFDEVICE_INIT yang diperolehnya dari WdfPdoInitAllocate, driver harus memanggil WdfDeviceInitFree alih-alih WdfDeviceCreate.
Setelah driver bus membuat objek perangkat, biasanya memanggil WdfDeviceSetPnpCapabilities dan WdfDeviceSetPowerCapabilities untuk melaporkan kemampuan Plug and Play dan daya perangkat.
Setiap sopir bus juga merupakan driver fungsi untuk adaptor bus. Oleh karena itu, driver juga harus menyediakan fungsi panggilan balik EvtDriverDeviceAdd . Fungsi panggilan balik ini membuat objek perangkat fungsional (FDO) untuk setiap adaptor bus pada sistem. Untuk informasi selengkapnya tentang membuat FDO, lihat Membuat Objek Perangkat di Driver Fungsi.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk