WDK_DeviceQuery.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #ifndef __WDK_DEVICEQUERY__
  2. #define __WDK_DEVICEQUERY__
  3. /* ----------------------------------------------------------
  4. 文件名称:WDK_DeviceQuery.h
  5. 作者:秦建辉
  6. MSN:splashcn@msn.com
  7. 版本历史:
  8. V1.3 2010年05月22日
  9. 增加获取硬盘序列号(需要系统管理员权限)。
  10. V1.2 2010年05月20日
  11. 更新接口函数。
  12. 增加获取网卡原生MAC地址。
  13. V1.1 2010年04月27日
  14. 优化代码。
  15. V1.0 2010年04月15日
  16. 完成正式版本。获取设备的VID-PID。
  17. 功能描述:
  18. 基于WDK获取设备属性值。
  19. 接口函数:
  20. WDK_DeviceQuery_Property
  21. WDK_DeviceQuery_VIDPID
  22. ------------------------------------------------------------ */
  23. #pragma once
  24. #include <windows.h>
  25. #ifndef MACRO_T_DEVICE_PROPERTY
  26. #define MACRO_T_DEVICE_PROPERTY
  27. #define PROPERTY_MAX_LEN 128 // 属性字段最大长度
  28. typedef struct _T_DEVICE_PROPERTY
  29. {
  30. TCHAR szProperty[PROPERTY_MAX_LEN];
  31. } T_DEVICE_PROPERTY;
  32. #endif
  33. #define WDK_QUERY_TYPENUM 4 // WDK查询支持的类型数
  34. #ifndef MACRO_HIDD_VIDPID
  35. #define MACRO_HIDD_VIDPID
  36. typedef struct _HIDD_VIDPID
  37. {
  38. USHORT VendorID;
  39. USHORT ProductID;
  40. } HIDD_VIDPID;
  41. #endif
  42. #ifdef __cplusplus
  43. extern "C"
  44. {
  45. #endif
  46. /*
  47. 功能:基于WDK获取设备属性值
  48. 参数说明:
  49. iQueryType:需要查询的设备属性
  50. 0:人机交互设备的VID-PID
  51. 1:网卡原生MAC地址(包含USB网卡)
  52. 2:网卡原生MAC地址(剔除USB网卡)
  53. 3:硬盘序列号(需要系统管理员权限)
  54. properties:存储设备属性值
  55. iSize:可存储的最大设备数
  56. 返回值:
  57. -1:获取设备信息表失败
  58. -2:不支持的查询类型
  59. >=0:实际获取的设备数
  60. */
  61. INT WDK_DeviceQuery_Property( INT iQueryType, T_DEVICE_PROPERTY *properties, INT iSize );
  62. /*
  63. 功能:获取指定设备接口类相关设备的VID和PID
  64. 参数说明:
  65. pGuid:指向设备接口类GUID
  66. pVIDPID:存储设备的VID和PID
  67. iSize:可存储的最大设备数
  68. 返回值:
  69. -1:获取设备信息表失败
  70. >=0:实际获取的设备数
  71. */
  72. INT WDK_DeviceQuery_VIDPID( const GUID* pGuid, HIDD_VIDPID* pVIDPID, INT iSize );
  73. #ifdef __cplusplus
  74. }
  75. #endif
  76. #endif // __WDK_DEVICEQUERY__