Travailler avec les périphériques USB dans .NET

À l'aide .Net (C#), comment pouvez-vous travailler avec les périphériques USB?

Comment pouvez-vous détecter des événements USB (les connexions/déconnexions) et comment voulez-vous communiquer avec des périphériques (lecture/écriture).

Est-il un natif .Net solution pour cela?