The important thing is not that it does not work in a VM. DO NOT merge there.
What is this doing until it becomes a file driver? Why doesn't the easiest way to find out for sure work?