#ifndef __WDK_DEVICEQUERY__ #define __WDK_DEVICEQUERY__ /* ---------------------------------------------------------- 文件名称:WDK_DeviceQuery.h 作者:秦建辉 MSN:splashcn@msn.com 版本历史: V1.3 2010年05月22日 增加获取硬盘序列号(需要系统管理员权限)。 V1.2 2010年05月20日 更新接口函数。 增加获取网卡原生MAC地址。 V1.1 2010年04月27日 优化代码。 V1.0 2010年04月15日 完成正式版本。获取设备的VID-PID。 功能描述: 基于WDK获取设备属性值。 接口函数: WDK_DeviceQuery_Property WDK_DeviceQuery_VIDPID ------------------------------------------------------------ */ #pragma once #include #ifndef MACRO_T_DEVICE_PROPERTY #define MACRO_T_DEVICE_PROPERTY #define PROPERTY_MAX_LEN 128 // 属性字段最大长度 typedef struct _T_DEVICE_PROPERTY { TCHAR szProperty[PROPERTY_MAX_LEN]; } T_DEVICE_PROPERTY; #endif #define WDK_QUERY_TYPENUM 4 // WDK查询支持的类型数 #ifndef MACRO_HIDD_VIDPID #define MACRO_HIDD_VIDPID typedef struct _HIDD_VIDPID { USHORT VendorID; USHORT ProductID; } HIDD_VIDPID; #endif #ifdef __cplusplus extern "C" { #endif /* 功能:基于WDK获取设备属性值 参数说明: iQueryType:需要查询的设备属性 0:人机交互设备的VID-PID 1:网卡原生MAC地址(包含USB网卡) 2:网卡原生MAC地址(剔除USB网卡) 3:硬盘序列号(需要系统管理员权限) properties:存储设备属性值 iSize:可存储的最大设备数 返回值: -1:获取设备信息表失败 -2:不支持的查询类型 >=0:实际获取的设备数 */ INT WDK_DeviceQuery_Property( INT iQueryType, T_DEVICE_PROPERTY *properties, INT iSize ); /* 功能:获取指定设备接口类相关设备的VID和PID 参数说明: pGuid:指向设备接口类GUID pVIDPID:存储设备的VID和PID iSize:可存储的最大设备数 返回值: -1:获取设备信息表失败 >=0:实际获取的设备数 */ INT WDK_DeviceQuery_VIDPID( const GUID* pGuid, HIDD_VIDPID* pVIDPID, INT iSize ); #ifdef __cplusplus } #endif #endif // __WDK_DEVICEQUERY__