The essence in windows driver development is to get the picture about layers and IRPs, IRQLs, and also to know terms like filter drivers. If you are looking for example codes, here is my Spodek driver code: sf.net link. You will find there a filter driver (for keyboard, keyb.c), kernel space queue (queue.c) and techniques to hide presence in system. Device Model data structures. ▶ The device model is organized around three main data structures: ▶ The struct bustypestructure, which represent one type of bus (USB, PCI, I2C, etc.) ▶ The struct devicedriverstructure, which represents one driver capable of handling certain devices on a certain bus.
If your workstation is running Linux. or Apple. OS X. you already have the necessary USB drivers installed and can safely skip the instructions on this page.