2024年3月14日发(作者:)

开发环境:

Visual Studio V2010

.NET Framework 4 Client Profile

版本历史:

V1.3 2011年09月08日

代码优化

V1.2 2011年09月02日

增加基于服务的查询

V1.1 2011年09月01日

增加基于设备ID的查询,解决LIKE子句中反斜杠字符引发的WQL查询异常

V1.0 2011年08月30日

基于WMI实现对USB设备的查询

------------------------------------------------------------ */

using System;

using ment;

using rExpressions;

using c;

namespace

{

///

/// 即插即用设备信息结构

///

public struct PnPEntityInfo

{

public String PNPDeviceID; // 设备ID

public String Name; // 设备名称

public String Description; // 设备描述

public String Service; // 服务

public String Status; // 设备状态

public UInt16 VendorID; // 供应商标识

public UInt16 ProductID; // 产品编号

public Guid ClassGuid; // 设备安装类GUID

}

///

/// 基于WMI获取USB设备信息

///

public partial class USB

{

#region UsbDevice

///

/// 获取所有的USB设备实体(过滤没有VID和PID的设备)

///

public static PnPEntityInfo[] AllUsbDevices

{

get

{

return WhoUsbDevice(ue, ue,

);

}

}

///

/// 查询USB设备实体(设备要求有VID和PID)

///

/// 供应商标识,MinValue忽视

/// 产品编号,MinValue忽视

/// 设备安装类Guid,Empty忽视

/// 设备列表

public static PnPEntityInfo[] WhoUsbDevice(UInt16 VendorID, UInt16

ProductID, Guid ClassGuid)

{

List UsbDevices = new List();

// 获取USB控制器及其相关联的设备实体