At any rate, last night I refactored a communication method to simplify things (yay WDFQUEUEs) which apparently got rid of the freeze problem on driver unload I had been having. I also added what should be nearly all of the code to handle reading data, but I have a crash now and a good idea what causes it. I hope to fix that tonight. If it gets fixed and I polish off the data reads, then I hopefully just need to add one special feature and clean up debug code etc., and the kernel driver part should be essentially done. Then it's userspace time for real!