Kernel Mode and User ModeThe User mode drivers are allowed to use the Win32(r) API described by the Windows SDK where as the Win32 subsystem internally calls the exported driver and operating system kernel routines. The difference is vast just to understand and describe in few lines here. Lets try best, but better get the DDK installed to see the right one. The kernel mode drivers can use most of the routines exported by the Windows Operating System, these exported routines support the I/O, configuration, Plug and Play, power management, memory management, and numerous other operating system features. This is a very standard way of describing the way the Device Drivers are taught but definitely reading this will not suffice to introduce you to it.
These two types differ in everything. The difference starts by the definition of DriverEntry routine. Every WDM driver has a entry point and this is used by the operating system to understand where to start the execution. Let me put it in other terms like this routine is called first when driver is loaded in the memory of the system. This routine describes the start of execution of the driver.
The type of driver to be used or written is totally depends on the support provided by the Operating system. In vague language I can say, you may have to write a user mode device driver when the Operating system has the support means the Win32 subsyem has the capability to provide the routines, otherwise you dont have an option go for the Kernel mode driver and then all I can say is Best of luck...
the other major difference is also the interrupts used by the same but lets leave something for tomorrow.