I'm going to say that you're going to need native code, because doing something this big will require more APIs and direct access to the device than .NET has.

http://msdn2.microsoft.com/en-us/library/bb158486.aspx