Writing WDF Drivers I: Core Concepts for Microsoft Students