Bagikan melalui


Contoh Tumpukan Perangkat WDM

Bagian ini menjelaskan objek perangkat yang mungkin dibuat oleh sekumpulan driver untuk perangkat keras USB. Ilustrasi ini menunjukkan objek perangkat WDM dan bagaimana mereka membentuk lapisan.

Gambar berikut menunjukkan objek perangkat yang dibuat oleh sampel driver. Untuk informasi selengkapnya, lihat Lapisan Driver WDM: Contoh.

diagram mengilustrasikan sampel lapisan objek perangkat wdm untuk joystick usb.

Mulai dari bagian bawah gambar ini, objek perangkat dalam tumpukan perangkat sampel meliputi:

  1. PDO dan FDO untuk bus PCI.

    Driver bus akar menghitung bus sistem internal (bus akar) dan membuat PDO untuk setiap perangkat yang ditemukannya. Salah satu PDO ini adalah untuk bus PCI. (Gambar tidak menunjukkan PDO dan FDO untuk bus induk.)

    Manajer PnP mengidentifikasi driver PCI sebagai driver fungsi untuk bus PCI, memuat driver (jika belum dimuat), dan meneruskan PDO ke driver PCI. Dalam prosedur AddDevice, driver PCI membuat FDO untuk bus PCI (IoCreateDevice) dan mengaitkan FDO ke tumpukan perangkat (IoAttachDeviceToDeviceStack) untuk bus PCI. Driver PCI membuat dan melampirkan FDO ini sebagai bagian dari tanggung jawabnya sebagai driver fungsi untuk bus PCI.

    Contoh ini tidak termasuk driver filter untuk bus PCI.

  2. Sebuah PDO (Physical Device Object) dan FDO (Functional Device Object) untuk pengontrol host USB.

    Manajer PnP mengarahkan driver PCI untuk memulai perangkatnya (IRP_MN_START_DEVICE) dan kemudian meminta driver PCI untuk anak-anaknya (IRP_MN_QUERY_DEVICE_RELATIONS dengan jenis relasi BusRelations). Sebagai respons, driver PCI menghitung perangkat di busnya. Dalam contoh ini, driver PCI menemukan pengontrol host USB dan membuat PDO untuk perangkat tersebut. Panah lebar pada gambar menunjukkan bahwa pengontrol host USB adalah "anak" dari bus PCI. Driver PCI membuat PDO untuk perangkat anaknya sebagai bagian dari tanggung jawabnya sebagai sopir bus untuk bus PCI.

    Manajer PnP mengidentifikasi pasangan driver miniclass/kelas pengontrol host USB sebagai driver fungsionalitas untuk pengontrol host USB dan memuat pasangan driver tersebut. Manajer PnP memanggil pasangan driver pada waktu yang tepat untuk membuat dan melampirkan FDO untuk pengontrol host USB.

    Contoh ini tidak menyertakan driver filter untuk pengontrol host USB.

  3. PDO dan FDO untuk hub USB.

    Pengontrol host USB memetakan busnya, menemukan hub USB di satu-satunya port, dan membuat PDO untuk hub. Driver hub USB membuat dan menambahkan FDO untuk hub.

    Contoh ini tidak menyertakan driver filter untuk hub USB.

  4. Sebuah PDO, sebuah FDO, dan dua filter DO untuk perangkat joystick.

    Driver hub USB menghitung busnya, menemukan perangkat HID (joystick), dan membuat PDO untuk joystick.

    Dalam contoh ini, driver filter tingkat bawah diatur di registri untuk perangkat joystick, sehingga manajer PnP memuat driver filter. Driver filter menentukan bahwa driver tersebut relevan dengan perangkat dan membuat dan melampirkan filter DO ke tumpukan perangkat.

    Manajer PnP menentukan bahwa driver fungsi untuk perangkat joystick adalah pasangan driver kelas HID/miniclass dan memuat driver tersebut. Pasangan driver terdiri dari driver mini kelas yang terhubung ke driver kelas DLL. Bersama-sama mereka bertindak sebagai satu driver fungsi untuk perangkat. Pasangan driver kelas/miniclass membuat satu objek perangkat, FDO, dan melampirkannya ke tumpukan perangkat.

    Driver filter tingkat atas membuat dan melampirkan filter DO ke tumpukan perangkat, dengan cara yang mirip dengan filter tingkat bawah.

Driver bus induk selalu membuat PDO di bagian bawah tumpukan perangkat untuk perangkat tertentu. Ketika driver menangani PnP atau IRP daya, mereka harus melewati setiap IRP hingga ke bawah stak perangkat ke PDO dan ke driver bus yang terkait.

Gambar berikut menunjukkan tumpukan perangkat yang sama dengan gambar sebelumnya, tetapi menekankan objek perangkat mana yang dibuat dan dikelola setiap driver.

diagram yang mengilustrasikan lapisan objek perangkat sampel dari perspektif driver.

Sopir bus menjangkau lebih dari satu tumpukan perangkat. Pengemudi bus membuat FDO untuk adaptor atau pengontrol busnya dan membuat PDO untuk setiap perangkat anaknya.