Why should kernel drivers reside in non-paged memory? (I know this is true for Windows, I would be curious if it is also true for other operating systems and why).
Non-paged memory is required, since the region of code that interfaces with the device (eg ISR) should not be in paged memory. If it does not work with the device or does not need to be processed in DISPATCH_LEVEL, it is okay to be in paged memory.