What's the difference between a .drv file and a .dll file? They both contain executable code, right? For instance, I'm wondering why EnumPrinters is contained in winspool.drv. In .NET, you call a .drv file just like a .dll - with the DllImport attribute. Is there any functional difference?

Thanks,
Mike