DDKDebugLauncher is a .Net module and should not be causing missing DLL problems. Could you download VisualDDK sources from SourceForge, compile DDKDebugLauncher (it will register itself automatically), set a breakpoint in BasicMSDbgSession::CreateClient() and step through to see what fails?
As far as I know, it is only possible for the USB devices.
However, you can try making a “dummy PCI driver” that will forward the requests to a named pipe and then develop the high-level logic in user-mode. However, for certain device types this might be impossible due to performance constraints.