Manajer PnP Mendistribusikan Ulang Sumber Daya Sistem

Jika pengguna menambahkan perangkat ke sistem, dan jika perangkat memerlukan sumber daya sistem yang telah ditetapkan manajer PnP ke perangkat lain, manajer PnP mencoba menetapkan ulang sumber daya.

Selama proses ini, manajer PnP menghentikan perangkat dan mengeluarkannya dari status kerja (D0). Kemudian mengirimkan daftar sumber daya baru ke perangkat sehingga mereka dapat memulai ulang, menggunakan sumber daya baru.

Saat mendistribusikan ulang sumber daya, manajer PnP tidak akan mengubah penetapan sumber daya perangkat jika salah satu driver perangkat memiliki:

Urutan Power-Down

Untuk setiap fungsi dan driver filter yang mendukung perangkat yang dihentikan, kerangka kerja melakukan hal berikut, secara berurutan, satu driver pada satu waktu, dimulai dengan driver yang tertinggi di tumpukan driver:

  1. Jika driver menggunakan I/O yang dikelola sendiri, kerangka kerja memanggil fungsi panggilan balik EvtDeviceSelfManagedIoSuspend driver.

  2. Kerangka kerja menghentikan semua antrean I/O yang dikelola daya perangkat.

  3. Jika perangkat keras dan driver mendukung DMA, kerangka kerja memanggil fungsi panggilan balik EvtDmaEnablerSelfManagedIoStop, EvtDmaEnablerFlush, dan EvtDmaEnablerDisable driver untuk setiap saluran DMA yang dibuat.

  4. Memanggil fungsi panggilan balik EvtDeviceD0ExitPreInterruptsDisabled dan EvtInterruptDisable driver (jika ada) sehingga driver dapat menonaktifkan gangguan perangkat.

  5. Kerangka kerja memanggil fungsi panggilan balik EvtDeviceD0Exit driver (jika ada).

  6. Kerangka kerja memanggil fungsi panggilan balik EvtDeviceReleaseHardware driver (jika ada) meneruskan daftar sumber daya perangkat keras yang telah ditetapkan manajer PnP ke perangkat.

Pengemudi bus adalah pengemudi terendah di tumpukan dan disebut terakhir. Ketika kerangka kerja memanggil fungsi panggilan balik EvtDeviceD0Exit driver bus, ia meneruskan handel ke objek perangkat kerangka kerja yang mewakili PDO perangkat dan nilai TargetStateWdfPowerDeviceD3Final. Driver bus dapat mengontrol kapan kerangka kerja memanggil fungsi panggilan balik EvtDeviceReleaseHardware dengan memanggil WdfDeviceInitSetReleaseHardwareOrderOnFailure.

Urutan Power-Up

Pengemudi pertama yang dipanggil adalah sopir bus. Ketika kerangka kerja memanggil fungsi panggilan balik EvtDeviceD0Entry driver bus, fungsi panggilan balik memulihkan perangkat (perangkat anak bus) ke status berfungsi (D0).

Untuk setiap fungsi dan driver filter yang mendukung perangkat, kerangka kerja melakukan hal berikut, secara berurutan, satu driver pada satu waktu, dimulai dengan driver yang terendah dalam tumpukan driver:

  1. Kerangka kerja memanggil fungsi panggilan balik EvtDevicePrepareHardware driver (jika ada), meneruskan daftar sumber daya perangkat keras yang telah ditetapkan manajer PnP ke perangkat.

  2. Kerangka kerja memanggil fungsi panggilan balik EvtDeviceD0Entry driver (jika ada).

  3. Kerangka kerja memanggil fungsi panggilan balik EvtInterruptEnable dan EvtDeviceD0EntryPostInterruptsEnabled driver (jika ada) sehingga driver dapat mengaktifkan gangguan perangkat.

  4. Jika perangkat keras dan driver mendukung DMA, kerangka kerja memanggil fungsi panggilan balik EvtDmaEnablerFill, EvtDmaEnablerEnable, dan EvtDmaEnablerSelfManagedIoStart driver untuk setiap saluran DMA yang dibuat.

  5. Kerangka kerja memanggil fungsi panggilan balik EvtChildListScanForChildren driver (jika ada).

  6. Kerangka kerja memulai ulang semua antrean I/O yang dikelola daya perangkat.

  7. Jika driver menggunakan I/O yang dikelola sendiri, kerangka kerja memanggil fungsi panggilan balik EvtDeviceSelfManagedIoRestart driver.