当前位置:编程学习 > C#/ASP.NET >>

C#:USB设备枚举(二)设备枚举API

 

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

文件名称:WDKUsbEnum.cs

 

作者:秦建辉

 

MSN:splashcn@msn.com

QQ:36748897

 

博客:http://blog.csdn.net/jhqin

 

开发环境:

    Visual Studio V2010

    .NET Framework 4 Client Profile

 

版本历史:    

    V1.0    2011年10月10日

            基于WDK枚举USB设备

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

using System; 

using System.Collections.Generic; 

using System.Management; 

using System.Runtime.InteropServices; 

using System.Text; 

 

namespace Splash.IO.PORTS 

    /// <summary> 

    /// USB主控制器信息 

    /// </summary> 

    public struct HostControllerInfo 

    { 

        public String PNPDeviceID;      // 设备ID 

        public String Name;             // 设备名称 

    } 

 

    /// <summary> 

    /// USB Hub信息 

    /// </summary> 

    public struct UsbHubInfo 

    { 

        public String PNPDeviceID;      // 设备ID 

        public String Name;             // 设备名称 

        public String Status;           // 设备状态 

    } 

 

    /// <summary> 

    /// USB HUB节点信息 

    /// </summary> 

    public struct UsbNodeInformation 

    { 

        public String DevicePath;           // 设备路径 

        public String PNPDeviceID;          // 设备ID         

        public String Name;                 // 设备名称 

 

        public USB_HUB_NODE NodeType;       // 节点类型 

 

        // USB_HUB_INFORMATION 

        public Boolean HubIsBusPowered;     // 供电方式:true-总线供电false-独立供电 

        public Int32 NumberOfPorts;         // 端口数 

        public Int16 HubCharacteristics;    // 特征描述 

        public Byte PowerOnToPowerGood;     // 从端口加电到端口正常工作的时间间隔(以2ms为单位) 

        public Byte HubControlCurrent;      // 设备所需最大电流 

 

        // USB_MI_PARENT_INFORMATION 

        public Int32 NumberOfInterfaces;    // 接口数 

    } 

 

    /// <summary> 

    /// USB设备描述符 

    /// </summary> 

    public struct UsbDeviceDescriptor 

    { 

        public Byte bDescriptorType;    // 描述符类型USB_DEVICE_DESCRIPTOR_TYPE 

        public String UsbVersion;       // USB规格版本号 

        public Byte bDeviceClass;       // 设备类型 

        public Byte bDeviceSubClass;    // 设备子类型 

        public Byte bDeviceProtocol;    // 设备协议 

        public Byte bMaxPacketSize0;    // 最大封包大小 

        public UInt16 idVendor;         // VID 

        public UInt16 idProduct;        // PID 

        public String DeviceVersion;    // 设备版本号 

        public String Manufacturer;     // 制造商 

        public String Product;          // 产品描述 

        public String SerialNumber;     // 序列号 

        public Byte bNumConfigurations; // 配置总数 

    } 

 

    /// <summary> 

    /// USB管道信息 

    /// </summary> 

    public struct UsbPipeInfo 

    { 

        public UInt32 ScheduleOffset; 

        public Byte bDescriptorType; 

        public Byte bEndpointAddress; 

        public Byte bmAttributes; 

        public UInt16 wMaxPacketSize; 

        public Byte bInterval; 

    } 

 

    /// <summary> 

    /// USB节点连接信息 

    /// </summary> 

    public struct UsbNodeConnectionInformation 

    { 

        public String DevicePath;           // 设备路径 

        public Int32 ConnectionIndex;       // 端口号 

 

        public UsbDeviceDescriptor DeviceDescriptor; 

 

        public Byte CurrentConfigurationValue;  // 当

补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,