#include #include #include static int thumb_probe(struct usb_interface *interface, const struct usb_device_id *id) { printk(KERN_INFO "Thumb drive (%04X:%04X) plugged\n", id->idVendor, id->idProduct); return 0; } static void thumb_disconnect(struct usb_interface *interface) { printk(KERN_INFO "Thumb drive removed\n"); } static struct usb_device_id thumb_table[] = { { USB_DEVICE(0x0781, 0x5408) }, {} /* Terminating entry */ }; MODULE_DEVICE_TABLE (usb, thumb_table); static struct usb_driver thumb_driver = { .name = "thumb_driver", .id_table = thumb_table, .probe = thumb_probe, .disconnect = thumb_disconnect, }; static int __init thumb_init(void) { return usb_register(&thumb_driver); } static void __exit thumb_exit(void) { usb_deregister(&thumb_driver); } module_init(thumb_init); module_exit(thumb_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Michael Mitchell"); MODULE_DESCRIPTION("USB Thumb Drive Demo");