NT drivers share many of the design goals of NT, in particular, those of the NT I/O Manager. These design goals include the following:
·Portability from one platform to another
·Configurability of hardware and software
·Always preemptible and always interruptible
·Multiprocessor-safe on multiprocessor platforms
·Object-based
·Packet-driven I/O with reusable I/O request packets (IRPs)
·Support for asynchronous I/O
The following sections explain some of the implications of these design goals for NT driver writers.