Organisasi Antrean DPC

Sistem ini menyediakan satu antrean DPC untuk setiap prosesor. Driver dapat mengontrol antrean mana yang ditetapkan sistem DPC, lokasi DPC dalam antrean, dan kapan antrean diproses.

DPC yang ditetapkan ke antrean prosesor tertentu dijalankan pada prosesor tersebut. Secara default, ketika driver memanggil KeInsertQueueDpc atau IoRequestDpc, DPC diantrekan pada prosesor yang saat ini aktif. Driver dapat menentukan antrean prosesor dengan memanggil KeSetTargetProcessorDpc sebelum memanggil KeInsertQueueDpc atau IoRequestDpc.

Pada Windows Vista dan versi Windows yang lebih baru, sistem juga memiliki satu antrean DPC berulir untuk setiap prosesor. Driver dapat menggunakan KeSetTargetProcessorDpc untuk menentukan antrean prosesor untuk DPC berulir.

Kontrol rutin KeSetImportanceDpc di mana DPC ditempatkan dalam antrean. Biasanya, DPC ditempatkan di akhir antrean; tetapi jika driver pertama kali memanggil KeSetImportanceDpc dengan parameter Kepentingan yang sama dengan HighImportance, DPC ditempatkan di awal antrean.

Untuk DPC biasa (non-threaded), KeSetImportanceDpc juga menentukan apakah KeInsertQueueDpc atau IoRequestDpc akan segera mulai memproses antrean DPC. Daftar berikut ini menjelaskan aturan untuk memproses antrean:

  • Pemrosesan antrean DPC segera dimulai jika DPC ditetapkan ke prosesor saat ini dan Kepentingan tidak sama dengan LowImportance, atau jika Kepentingan sama dengan LowImportance dan kedalaman antrean DPC dari prosesor saat ini melebihi batas yang ditentukan sistem atau tingkat permintaan DPC telah jatuh di bawah minimum yang ditentukan sistem. Jika tidak, pemrosesan DPC ditangguhkan sampai kedalaman antrean dan persyaratan laju yang sesuai terpenuhi.

  • Pemrosesan antrean DPC segera dimulai pada prosesor target jika DPC ditetapkan ke prosesor yang berbeda dari prosesor saat ini dan Kepentingan sama dengan MediumHighImportance atau HighImportance, atau jika kedalaman antrean DPC dari prosesor target melebihi batas yang ditentukan sistem. Jika tidak, pemrosesan DPC ditangguhkan sampai kedalaman antrean dan persyaratan laju yang sesuai terpenuhi.