ForUsbDevice.h
上传用户:lyfy_2008
上传日期:2014-07-13
资源大小:3016k
文件大小:2k
源码类别:

USB编程

开发平台:

Visual C++

  1. // ForUsbDevice.h
  2. //
  3. // Generated by DriverWizard version DriverStudio 2.7.0 (Build 562)
  4. // Requires Compuware's DriverWorks classes
  5. //
  6. #ifndef __ForUsbDevice_h__
  7. #define __ForUsbDevice_h__
  8. // Forward declaration
  9. class ForUsbDevice;
  10. struct USB_COMPLETION_INFO
  11. {
  12. PURB m_pUrb;
  13. ForUsbDevice* m_pClass;
  14. };
  15. class ForUsbDevice : public KPnpDevice
  16. {
  17. // Constructors
  18. public:
  19. SAFE_DESTRUCTORS;
  20. ForUsbDevice(PDEVICE_OBJECT Pdo, ULONG Unit);
  21. ~ForUsbDevice();
  22. // Member Functions
  23. public:
  24. DEVMEMBER_DISPATCHERS
  25. MEMBER_COMPLETEIRPWITHCONTEXT(USB_COMPLETION_INFO, ReadComplete)
  26. MEMBER_COMPLETEIRPWITHCONTEXT(USB_COMPLETION_INFO, WriteComplete)
  27. virtual NTSTATUS OnStartDevice(KIrp I);
  28. virtual NTSTATUS OnStopDevice(KIrp I);
  29. virtual NTSTATUS OnRemoveDevice(KIrp I);
  30. virtual NTSTATUS DefaultPnp(KIrp I);
  31. virtual NTSTATUS DefaultPower(KIrp I);
  32. virtual NTSTATUS OnDevicePowerUp(KIrp I);
  33. virtual NTSTATUS OnDeviceSleep(KIrp I);
  34. NTSTATUS FORUSB_IOCTL_Test_Handler(KIrp I);
  35. NTSTATUS FORUSB_IOCTL_Read_Handler(KIrp I);
  36. NTSTATUS FORUSB_IOCTL_Write_Handler(KIrp I);
  37. #ifdef _COMMENT_ONLY
  38. // The following member functions are actually defined by the
  39. // a DEVMEMBER_xxx or MEMBER_xxx macro (such as DEVMEMBER_DISPATCHERS).
  40. // The macro __COMMENT_ONLY never gets defined.  These comment-only
  41. // definitions simply allow easy navigation to the functions within
  42. // the Developer Studio using the class browser.
  43. NTSTATUS __stdcall ReadComplete(KIrp I, USB_COMPLETION_INFO* pContext); // COMMENT_ONLY
  44. NTSTATUS __stdcall WriteComplete(KIrp I, USB_COMPLETION_INFO* pContext); // COMMENT_ONLY
  45. virtual NTSTATUS CleanUp(KIrp I); // COMMENT_ONLY
  46. virtual NTSTATUS Create(KIrp I); // COMMENT_ONLY
  47. virtual NTSTATUS Close(KIrp I); // COMMENT_ONLY
  48. virtual NTSTATUS DeviceControl(KIrp I); // COMMENT_ONLY
  49. virtual NTSTATUS SystemControl(KIrp I); // COMMENT_ONLY
  50. virtual NTSTATUS Read(KIrp I); // COMMENT_ONLY
  51. virtual NTSTATUS Write(KIrp I); // COMMENT_ONLY
  52. #endif
  53. // Member Data
  54. protected:
  55. // Unit number for this device (0-9)
  56. ULONG m_Unit;
  57. KUsbLowerDevice m_Lower;
  58. KUsbInterface    m_Interface;
  59. // Pipe for USB endpoint 1 IN (address 0x81)
  60. KUsbPipe m_Endpoint1IN;
  61. // Pipe for USB endpoint 1 OUT (address 0x1)
  62. KUsbPipe m_Endpoint1OUT;
  63. // Pipe for USB endpoint 2 IN (address 0x82)
  64. KUsbPipe m_Endpoint2IN;
  65. // Pipe for USB endpoint 2 OUT (address 0x2)
  66. KUsbPipe m_Endpoint2OUT;
  67. };
  68. #endif