Making a virtual printer driver

I’m trying to learn how the user-mode printer driver architecture works by, right now, going through a few sample projects available on the internet. I have noticed the examples available on src folder of wdk, although i have no idea on how to work with them. I’ve tried to build the sample open source projects from source code but haven’t worked as well either (either the WDK build system complains about something in the code, of which I later tweaked to bypass the complaints, or it’s experiencing runtime problems). I’m wondering what would be the order of steps you have in mind to proceed on this perhaps based on the examples. I’m intending to make one to run in the Windows environment, perhaps more on the print processor and print monitor side of things of the application. Thanks in advance. Let me know if you need more information that I can find out.