资源简介
获取插入的USB得PID跟VID,可以根据PID跟VID确定智能机的型号,然后安装对应的驱动。
代码片段和文件信息
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace USB
{
///
/// SetupApi.dll的PInvoke
///
public partial class EZUSB
{
#region ENUM
[Flags]
private enum DIGCF
{
DIGCF_DEFAULT = 0x00000001
DIGCF_PRESENT = 0x00000002
DIGCF_ALLCLASSES = 0x00000004 // 设备安装类
DIGCF_PROFILE = 0x00000008
DIGCF_DEVICEINTERFACE = 0x00000010 // 设备接口类
}
#endregion
#region STRUCT
[StructLayout(LayoutKind.Sequential)]
private struct SP_DEVINFO_DATA
{
public static readonly SP_DEVINFO_DATA Empty = new SP_DEVINFO_DATA(Marshal.SizeOf(typeof(SP_DEVINFO_DATA)));
public UInt32 cbSize;
public Guid ClassGuid;
public UInt32 DevInst;
public IntPtr Reserved;
private SP_DEVINFO_DATA(int size)
{
cbSize = (UInt32)size;
ClassGuid = Guid.Empty;
DevInst = 0;
Reserved = IntPtr.Zero;
}
}
[StructLayout(LayoutKind.Sequential)]
private struct SP_DEVICE_INTERFACE_DATA
{
public static readonly SP_DEVICE_INTERFACE_DATA Empty = new SP_DEVICE_INTERFACE_DATA(Marshal.SizeOf(typeof(SP_DEVICE_INTERFACE_DATA)));
public UInt32 cbSize;
public Guid InterfaceClassGuid;
public UInt32 Flags;
public UIntPtr Reserved;
private SP_DEVICE_INTERFACE_DATA(int size)
{
cbSize = (uint)size;
InterfaceClassGuid = Guid.Empty;
Flags = 0;
Reserved = UIntPtr.Zero;
}
}
[StructLayout(LayoutKind.Sequential CharSet = CharSet.Auto)]
private struct SP_DEVICE_INTERFACE_DETAIL_DATA
{
public UInt32 cbSize;
[MarshalAs(UnmanagedType.ByValTStr SizeConst = 256)]
public String DevicePath;
}
#endregion
#region API
#region SetupDiGetClassDevs
[DllImport(“setupapi.dll“ CharSet = CharSet.Auto)]
private static extern IntPtr SetupDiGetClassDevs(
ref Guid ClassGuid
[MarshalAs(UnmanagedType.LPTStr)] String Enumerator
IntPtr hwndParent
DIGCF Flags
);
[DllImport(“setupapi.dll“ CharSet = CharSet.Auto)]
private static extern IntPtr SetupDiGetClassDevs(
IntPtr ClassGuid // null
String Enumerator
IntPtr hwndParent
DIGCF Flags
);
#endregion
#region SetupDiGetClassDevsEx
[DllImport(“setupapi.dll“ CharSet = CharSet.Auto)]
private static extern IntPtr SetupDiGetClassDevsEx(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7809 2013-11-27 11:44 GetUSBPidVid\SetupApi.cs
文件 5309 2013-11-27 11:44 GetUSBPidVid\WDKVidPidQuery.cs
目录 0 2013-11-27 11:44 GetUSBPidVid
----------- --------- ---------- ----- ----
13118 3
相关资源
- 单层、双层A型USB母口的PCB封装
- HID USB设备通讯-源代码 UsbLibrary
- mini usb B型 AD库封装
- 易语言USB设备控制源码
- 三鼎全站仪usb驱动
- 一种非线性PID控制器建模与仿真
- PID符号图应用
- STM32_PID算法源码
- xvid mpeg4 codec 编码解码器 v1.1.3 Final 汉
- 基于LabVIEW的模拟PID控制程序
- 用labview演示PID控制规律225921
- Arduino的PID库
- pid单纯形法
- USB设备状态监控插拔事件响应等。
- 基于USB摄像头的条形码识别
- USB2.0-Serial Win7 64bit驱动程序
- USB安装EXSi出错使用menu.c32文件
- USB MIDI 技术文档
- arm板上实现usb摄像头采集及显示(q
- 基于labview通过usb摄像头采集图像子
- MINI USB接口尺寸封装集合
- ch340解决win10 usb serial2.0驱动找不到问
- 几种PID控制器参数整定方法的比较研
- 基于周立功的usbcan接口卡的labview开发
- 采用STC12C5A60S2单片机作为主控芯片实
- LIBUSB_HID通讯_上位机
- 神经网络和PID控制
- usb2.0 -ser! (支持64位win7)(CH340芯片
- nvidia-docker2-2.0.3-3.docker18.09.6.ce.noarch
- 树莓派 Ubuntu mate16.04 2个usb转串口互相
评论
共有 条评论