Programming the Microsoft Windows Driver Model