Beginner's guide to writing a SATA device driver?