Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sebagian besar rutinitas pengiriman driver dipanggil dalam konteks thread arbitrer di IRQL = PASSIVE_LEVEL, dengan pengecualian berikut:
Setiap rutinitas pengiriman driver tingkat tertinggi dipanggil dalam konteks utas yang berasal dari permintaan I/O, yang biasanya merupakan utas aplikasi mode pengguna.
Dengan kata lain, pengiriman rutinitas driver sistem file dan driver tingkat tertinggi lainnya dipanggil dalam konteks utas nonarbitrer di IRQL = PASSIVE_LEVEL.
Rutinitas DispatchRead, DispatchWrite, dan DispatchDeviceControl dari driver perangkat tingkat terendah, dan driver perantara yang berlapis di atasnya di jalur paging sistem, dapat dipanggil di IRQL = APC_LEVEL dan dalam konteks utas arbitrer.
Rutin DispatchRead dan/atau DispatchWrite, serta rutin lain yang juga memproses permintaan baca dan/atau tulis dalam perangkat tingkat terendah atau driver perantara, harus selalu berada di memori. Rutinitas driver ini tidak boleh dipindahkan ke halaman atau menjadi bagian dari bagian gambar driver yang dapat dipindahkan ke halaman; mereka tidak boleh mengakses memori yang dapat dipindahkan ke halaman. Selain itu, mereka tidak boleh bergantung pada panggilan pemblokiran apa pun (seperti KeWaitForSingleObject dengan batas waktu nonzero).
Rutinitas DispatchPower pada driver dalam jalur hibernasi dan/atau halaman dapat dipanggil di IRQL = DISPATCH_LEVEL. Rutinitas DispatchPnP dari driver tersebut harus disiapkan untuk menangani permintaan PnP IRP_MN_DEVICE_USAGE_NOTIFICATION .
Rutinitas Driver DispatchPower yang memerlukan daya inrush saat start-up dapat dipanggil di IRQL = DISPATCH_LEVEL.
Rutinitas DispatchPower, DispatchRead, DispatchWrite, DispatchDeviceControl, dan DispatchInternalDeviceControl semuanya dapat dipanggil di IRQL <= DISPATCH_LEVEL.
Untuk informasi tambahan, lihat Mengelola Prioritas Perangkat Keras.