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.