精华内容
下载资源
问答
  • libwdi, USB设备的Windows 驱动程序安装程序库 libwdi: 用于USB设备的Windows 驱动程序安装库 的主要功能自动创建信息,使用报告的USB设备名称自动编录文件创建和签名,使用自动生成的证书用于 32位和 64位平台的...
  • 启动WINCE系统后,插上U盘 提示输入驱动程序名称,这是为嘛。。。
  • 这个设备(服务)的驱动程序已被禁用。另一个驱动程序可以提供这个功能。 (代码 32) 设备 USB\VID_13FE&PID_4100\070C2647DC139778 在启动时出现问题。 驱动程序名称: usbstor.inf 类 GUID: {36FC9E60-...

    问题描述如下:

    这个设备(服务)的驱动程序已被禁用。另一个驱动程序可以提供这个功能。 (代码 32)

    设备 USB\VID_13FE&PID_4100\070C2647DC139778 在启动时出现问题。

    驱动程序名称: usbstor.inf
    类 GUID: {36FC9E60-C465-11CF-8056-444553540000}
    服务: USBSTOR
    低层筛选程序: 
    高层筛选程序: 
    问题: 0x20
    问题状态: 0x0

     

    这个问题困扰我一个多月,经测试,u盘和移动硬盘均正常。

    问题解决方法:

    1、按“win+R"进行入运行界面;

    2、输入"regedit"; 

    3、找到:“计算机/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/”目录下几个usb开头的文件夹;

    4、鉴于我们usb驱动一盘是“USBSTOR"点击它,发现“Start”值是4,(2--自启动,3--默认启动,4--是禁止启动),所以问题找到,将“Start”值改成“2”或“3”。

    5、问题延生,如遇到其他驱动无法启动时,可以检查其对应的“Start”值是否正常为“2”或“3”,否则改成正常值。

    展开全文
  • 前提是设备安装的驱动之前是可以使用的,但是后来修改了设备的一些信息如pid、vid或者端口 名称啊等等,修改后 如下图: 这些信息要仔细看了,我就是因为这些信息没有仔细看所以驱动之前可以使用,...

                                       USB自定义设备驱动开发——修改驱动后应用程序无法使用 ,这是为什么呢?

    前提是设备安装的驱动之前是可以使用的,但是后来修改了设备的一些信息如pid、vid或者端口 名称啊等等,修改后  如下图:



    这些信息要仔细看了,我就是因为这些信息没有仔细看所以驱动之前可以使用,修改后我默认选择是 所以生成的sys文件照样去安装到设备上,出现不可使用的情况。

    那是选择“是”之后 软件会对以前的文件重新生成覆盖,之前你修改的一些程序代码也会消失,你得重新在再写进去,这是一定要注意的。

    你的一在修改驱动之前备份一下你的代码,然后选择是来重新生成代码,后来把你的修改过代码的文件拷贝进来覆盖生成的,就可以了。比较重要的应该是

    这四个文件吧,所以一定要注意原来的代码被修改,这个也是我写这篇文章 的目的。

    要是各位大侠有什么更好的方法,可以给我留言,谢谢。

    展开全文
  • 一个USB设备插入到系统中时,会被系统识别出USB设备,并通过系统上的USB总线驱动程序通过约定好的规范询问USB设备的信息(描述符),如设备名称。USB总线驱动程序负责:识别USB设备,给USB设备找到对应的驱动程序(自己...

    1、学习思路

    一个USB设备插入到系统中时,会被系统识别出USB设备,并通过系统上的USB总线驱动程序通过约定好的规范询问USB设备的信息(描述符),如设备名称。USB总线驱动程序负责:识别USB设备,给USB设备找到对应的驱动程序(自己开发)。USB设备通过约定好的规范,把描述符发送给USB总线驱动程序。

    问1. 既然还没有"驱动程序",为何能知道是"android phone"

    答1. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone",提示你安装的是"设备驱动程序"。

    问2. USB设备种类非常多,为什么一接入电脑,就能识别出来?

    答2. PC和USB设备都得遵守一些规范。

         比如:USB设备接入电脑后,PC机会发出"你是什么"?

              USB设备就必须回答"我是xxx",并且回答的语言必须是中文

        USB总线驱动程序会发出某些命令想获取设备信息(描述符),

        USB设备必须返回"描述符"给PC

    问3. PC机上接有非常多的USB设备,怎么分辨它们?

        USB接口只有4条线: 5V,GND,D-,D+

    答3. 每一个USB设备接入PC时,USB总线驱动程序都会给它分配一个编号

         接在USB总线上的每一个USB设备都有自己的编号(地址)

        PC机想访问某个USB设备时,发出的命令都含有对应的编号(地址)

    问4. USB设备刚接入PC时,还没有编号;那么PC怎么把"分配的编号"告诉它?

    答4. 新接入的USB设备的默认编号是0,在未分配新编号前,PC使用0编号和它通信。

    问5. 为什么一接入USB设备,PC机就能发现它?

    答5. PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低电平

        USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;它一接入PC,就会把PC USB口的D-或D+拉高,从硬件的角度通知PC有新设备接入

    其他概念:

    1. USB是主从结构的

       所有的USB传输,都是从USB主机这方发起;USB设备没有"主动"通知USB主机的能力。

       例子:USB鼠标滑动一下立刻产生数据,但是它没有能力通知PC机来读数据,只能被动地等得PC机来读。

    2. USB的传输类型:

    • a. 控制传输:可靠,时间有保证,比如:USB设备的识别过程
    • b. 批量传输: 可靠, 时间没有保证, 比如:U盘
    • c. 中断传输:可靠,实时,比如:USB鼠标
    • d. 实时传输:不可靠,实时,比如:USB摄像头

    3. USB传输的对象:端点(endpoint)

       我们说"读U盘"、"写U盘",可以细化为:把数据写到U盘的端点1,从U盘的端点2里读出数据

       除了端点0外,每一个端点只支持一个方向的数据传输

       端点0用于控制传输,既能输出也能输入

    4. 每一个端点都有传输类型,传输方向

    5. 术语里、程序里说的输入(IN)、输出(OUT) "都是" 基于USB主机的立场说的。

       比如鼠标的数据是从鼠标传到PC机, 对应的端点称为"输入端点"

    6. USB总线驱动程序的作用

    • a. 识别USB设备
    • b. 查找并安装对应的设备驱动程序
    • c. 提供USB读写函数



    展开全文
  • USB驱动程序的理解

    千次阅读 2007-05-30 16:02:00
    USB驱动程序有一小小理解。现在总结如下!!!!!!!!1、每个设备对应一个PDO,每个PDO又对应多个FDO,在驱动程序中直接操 作...另外,在驱动程序加载方面,WDM不通过驱动程序名称识别,而是通过一个128位
    对USB驱动程序的有一小小的理解。现在总结如下!!!!!!!!
    1、每个设备对应一个PDO,每个PDO又对应多个FDO,在驱动程序中直接操 作的不是硬件而是相应的PDO和FDO。在USER和KERNEL通信方面,系统将每一个用户请求打包成IRP结构,将其发送至驱动程序,并通过识别 IRP中的PDO来区别是发送给哪个设备的。另外,在驱动程序加载方面,WDM不通过驱动程序名称识别,而是通过一个128位的全局唯一的标识符GUID 来实现驱动程序的识别,即每一个固件都有一个GUID,你通过GUID来区分是哪个固件。
    2、USB主机驱动符合WDM驱动体系结构也使用IRP(I/O请求包)的机制。但实际的USB驱动程序使用URB(USB请求块)结构向其硬件设备发送请求。USB驱动程序高度依赖其总线驱动程序(USBD.SYS),而不直接使用硬件抽象层(HAL)函数与硬件通信。
    3、 USBD是USB系统软件中最关键的一层,它负责控制全部USB协议的操作和中断处理控制。主要功能有:设备设置、资源管理、数据传输(管道层次)以及公 共数据定义等。管道机制和命令机制。管道机制:管道是设备和主机之间的逻辑连接,分为标准管道和逻辑管道,标准管道用语完成一些客户通过命令接口所传递的 请求,如设置设备的地址等,但USBD不允许客户直接访问设备的标准管道。客户管道则有客户进行管理,并提供相应的数据缓冲区。命令机制允许客户以读写的 方式对设备的数据及其控制部分进行访问,客户所要做的,仅仅是向USBD提供设备的地址及相关的数据缓冲区的指针。命令机制所提供的功能主要是USB总线 管理相关的内容,如设备设置管理、设备数据访问、总线设备管理以及电流分配等。
    4、USB设备驱动程序设计
        2000DDK+VC6.0(只能用C,不能用C++)
        三个关键的例程:DriverEntry、AddDevice、ReadWrite
    (1)DriverEntry,完成某些全局初始化操作,它是内核模式驱动程序主入口点。
    extern "C"
    NTSTATUS DriverEntry( IN PDRIVER_OBJECT DriverObject,
                    IN PUNICODE_STRING RegistryPath )
    通过PDRIVER_OBJECT这一重要的数据结构,I/O管理器使用它来定义每一个设备驱动程序,DriverEntry主要工作是各种函数指针填入驱动程序对象的各个域中,这些指针为操作系统指明了驱动程序容器中各种子例程,重要包括下面指针成员:
        1、DriverUnload
        2、DriverExtension->AddDevice指向驱动程序的AddDevice函数
        3、DriverStartIo指向驱动程序处理串行I/O请求的函数。如果驱动程序采用标准的IRP排队的方式,应该设置该成员,使得指向驱动程序的StartIo例程。
        4、MajorFunction是一个指针数组,指向存在于驱动程序中的多种IRP处理函数。
        DriverObject->DriverUnload = DriverUnload;
        DriverObject->DriverExtension->AddDevice =AddDevice;
        DriverObject->MajorFunction[IRP_MJ_CREATE]= DispatchCreate;
     ~~~~~~~~~~~~~~
    (2)AddDevice
       一个驱动程序可以被多个设备使用。WDM驱动程序有一个特殊的AddDevice函数,PnP管理器为每个实例调用该函数。原形如下:
    NTSTATUS
    AddDevice( IN PDRIVER_OBJECT DriverObject,
        IN PDEVICE_OBJECT PhysicalDeviceObject);
    AddDevice函数的基本职责是创建一个设备对象并把它连接到以PDO为底的设备栈中。
    具体步骤如下:
    1) 用IoCreateDevice创建设备对象,并建立一个私有的设备扩展对象。
    PDEVICE_OBJECT fdo;
    NTSTATUS status = IoCreateDevice(DriverObject,
                                   sizeof(DEVICE_EXTENSION),
                                   NULL,
                                   FILE_DEVICE_UNKNOWN,
                                   FILE_DEVICE_SECURE_OPEN,
                                   FALSE,
                                   &fdo);
    2) 初始化设备扩展和设备对象的Flag成员。
    PDEVICE_EXTENSION pdc = (PDEVICE_EXTENSION)fdo->DeviceExtension;
    fdo->DeviceExtension;
    fdo->Flag2|=DO_BUFFERED_IO;
    3) 调用IoAttachDeviceToDeviceStace函数把新设备对象放到堆栈上。
    pdx->LowerDeviceObject=IoAttachDeviceToDeviceStack(fdo,pfo);
      设备对象(DEVICE_OBJECT或*PDEVICE_OBJECT)也是DDK定义的一个重要结构。它可以在其设备名称(DeviceName)域 中(第三个参数)为设备对象进行命名。 设备对象另一个关键的域为扩展设备对象(DeviceExtension)大小,I/O管理器为设备对象分配一块 内存,该指针指向一个用户定义的数据结构,用于保存每个设备实例的信息
    typedef struct _DEVICE_EXTENSION
    {
        PDEVICE_OBJECT DeviceObject; //device object this extension
    //belongs to
        PDEVICE_OBJECT LowerDeviceObject;  //next lower driver in//same stack
        PDEVICE_OBJECT Pdo;     //the PDO
        IO_REMOVE_LOCK RemoveLock;  //removal control locking structure
        UNICODE_STRING ifname;     //interface name
        DEVSTATE state     //current state of device
        DEVSTATE prevstate;   //state prior to removal query
        DEVICE_POWER_STATE devpower; //current device power state
        SYSTEM_POWER_STATE syspower;  //currnet system power state
        DEVICE_CAPABILITIES devcaps;   //copy of most recent device capabilities
        LONG handles;    //#open handle
        USBD_DEVICE_DESCRIPTOR dd;   //device descriptor
        USBD_CONFIGURATION_HANDLE hconfig;   //selected configuration handle
        PUSB_CONFIGURATION_DESCRIPTOR pcd;   //Configuration descriptor;
        LANGID langid;     //default language id for strings
        USBD_PIPE_HANDLE hPipe;
        USBD_PIPE_HANDLE hPipe_WriteCode;
    }DEVICE_EXTENSION,*PDEVICE_EXTENSION;
    AddDevice为设备对象注册一个接口,以便应用程序能通过注册接口来访问该设备。一个设备接口被一个128位的GUID唯一标识。
        status = IoRegisterDeviceInferface(pdo,&GUID_INTERFACE_USB,NULL,&pdx->ifname); 得到GUID后,当响应PnP请求IRP_MN_START_DEVICE时,驱动程序调用下面函数使其可用, IoSetDeviceInterfacestate(&pdx->ifname,TRUE);
    在响应这个调用过程中,I/O管理 器将创建一个指向设备的PDO符号连接对象。因为接口名最终指向PDO,所以PDO的安全描述符将最终控制设备的访问权限。(3)ReadWrite实现 设备驱动程序功能的各个派遣函数,并实现总线枚举和管理函数,用于设备初始化以及错误恢复。是整个驱动最重要部分,以读数据请求为例子,即主机要求设备向 其传输数据。
    1)建立并提交一个URB,USB驱动从不直接和硬件对话,通过创建URB并把URB提交到总线驱动程序就可以完成硬件操作, USBD.SYS是接受URB的实体,向USBD的调用被转化为带有主功能代码为IRP_MJ_XXX的IRP。然后USBD再调度总线时间,发出URB 中指定的操作。
    创建一个URB是USB驱动最基本的工作,首先应该为URB分配内存,然后调用初始化例程把URB结构中的各个域填入请求要求的内容。最后通过创建并发送一个内部I/O控制(IOCTL)请求到USBD驱动程序来发送这个URB包,从而完成USB请求。
    2)创建并发送IOCTL请求
    创建完URB后,我们创建并发送一个IOCTL(内部I/O控制)请求到USBD,然后等待设备回应,相应的函数为SendAwaitUrb
    3) 返回设备完成状态
     
    展开全文
  • USB驱动程序的的理解

    千次阅读 2006-08-09 16:38:00
    1、每个设备对应一个PDO,每个PDO又对应多个FDO,在驱动程序中直接操作...另外,在驱动程序加载方面,WDM不通过驱动程序名称识别,而是通过一个128位全局唯一标识符GUID来实现驱动程序识别,即每一个固件都有一个
  • 高通9008设备驱动程序

    2019-01-26 03:31:22
    我上传这个驱动程序是高通签名过,不需要进入“禁用驱动程序签名强制”模式即可正常识别9008设备。 没安装高通驱动之前9008设备名称为“QHSUSB_DLOAD”,并且有感叹号。安装了高通驱动之后,之前“QHSUSB_...
  • 软件名称usbdevice驱动程序 软件大小:1012KB 软件语言:简体中文 ...软件介绍:很多朋友电脑的总线控制器内的UNKNOWNDEVICE提示没有该设备的驱动,可以试试这款usbdevice驱动看能否解决问题 ...
  • 简介 1.总线系统分类 总线名称 特点 ...内核采用主从设备号来标记匹配的驱动程序 ,b为块设备,c为字符设备。/dev中的设备节点在基于磁盘的文件系统中动态创建,由udevd守护进程负责管理(创建和
  • 编写设备驱动程序

    2013-04-02 13:37:53
    介绍了一种常用的驱动程序编写方法,该方法允许在编写驱动程序时忽略特定于平台的问题,如字节存储顺序(endianness)和数据排序等。 其他主题包括:强化Solaris驱动程序;电源管理;驱动程序自动配置;程控I/O;直接...
  • 最近在响应国家号召,在搞一些国产化机器,安装WIN7时提示“缺少所需CD/DVD驱动器设备驱动程序”, 原因部分集成计算机中因为高度集成化,会缺少部门驱动程序,同时镜像中没有usb驱动导致,无法识别u盘。 解决...
  • 1、为什么要绑定USB设备的串口名称? 用ubuntu系统来做硬件控制的时候,常使用USB串口与传感器或者驱动器进行信息通信。ubuntu系统在开机的时候会为每一个插入的USB设备自动升序命名,如ttyUSB0、ttyUSB1.........
  • 系统会自动识别新的设备,并启动驱动程序安装向导界面。我们会提供CECT dopod828+的USB驱动程序(.inf文件),在相应输入框中输入inf文件位置,系统会自动安装驱动。 5. 安装好驱动后,在PC机上启动dopod公司...
  • 1、为什么要绑定USB设备的串口名称? 用ubuntu系统来做硬件控制的时候,常使用USB串口与传感器或者驱动器进行信息通信。ubuntu系统在开机的时候会为每一个插入的USB设备自动升序命名,如ttyUSB0、ttyUSB1.........
  • 今天一个同事要我帮忙完成一个可以自动安装的驱动程序,我用google查到了一个工具软件,可以很方便的完成这件事情,软件的名称是:Driver Genius ,相当不错,它可以产生一个驱动程序的备份,可以生成
  • pciusb3.0扩展卡驱动可以让没有USB3.0接口主板升级至USB3.0高速接口,让您享受大容量与高效能储存能力,适用于多媒体影音剪辑、服务器数据库、DVR数据储存、2D/3D动画制作、美工绘图及系统数据备份等呢,支持...
  • 客户端程序编写1设备接口驱动程序的AddDevice代码调用IoCreateDevice创建设备对象。有两种方法提供对Win32程序可用的名称,老方法是提供一个明确符号链接名,新方法是使用设备接口标识支持定义API的设备。...
  • VB 获取USB磁盘设备信息的DLL类及演示程序 一个与USB硬件有关的DLL类,适用于VB环境,用这个类可以获取USB磁盘设备的硬件信息,比如驱动器序号、U盘ID序号、产品名称、制造商、驱动器等信息,有兴趣的朋友下载一试。
  • 自我介绍作为Arduino初学者,程序下载前第一道门槛就是驱动安装,这个问题难倒了绝大多数初学者,像如何打开设备管理器、如何下载驱动驱动安装过程出现“感叹号”等等,形形色色问题一大推,今天呢,特意抽...
  • USB 驱动彻底删除

    万次阅读 2011-11-16 19:04:18
    在进行USB设备开发的时候 ,经常需要更改USB设备的 名称或者pid 、vid等,特别是进行自定义USB设备,自己写驱动程序的时候,会出现一个问题就是: 设计了一个USB设备,插到电脑上通过安装驱动可以正常试用。 后来...
  • 软件分享 usb device驱动 软件名称usb device驱动程序 软件大小:1012KB ...软件介绍:很多朋友电脑的总线控制器内的UNKNOWN DEVICE提示没有该设备的驱动,可以试试这款usb device驱动看能否
  • USB设备类代码

    2020-10-21 11:28:58
    USB定义了用于识别设备功能并基于该功能名义上加载设备驱动程序的类代码信息。该信息包含三个字节,名称分别为Base Class,SubClass和Protocol。(请注意,在本说明中使用“基类”来标识类代码三元组第一个字节。...
  • DNW下USB驱动

    2013-10-22 21:24:55
    我要自己选择要安装的驱动程序。”,点击“下一步”。 接着,选择“从磁盘安装”,选择“浏览”,找到USB驱动,名称“secbulk.inf ”。 打开并确定,显示型号为“TQ2440 BOARD”,点“下一步”,...
  • razer seiren 驱动为用户解决雷蛇魔音海妖麦克风连接电脑时无法识别usb设备常见驱动问题,雷蛇魔音海妖驱动为官方正式版本硬件驱动请通过硬件id精准安装驱动,有需要此款工具朋友们欢迎前来下载使用。  软件说明...
  • linux 设备驱动模型

    2020-10-29 13:12:54
    usb转串口设备插入centos主机中,内核处理全过程,包括如果得到usb设备中的配置信息,如何为其找到并加载一个合适的驱动程序,直到最后为其在/dev/中创建一个设备名称。 设备驱动模型的生成(即/sys下的结点生成...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 193
精华内容 77
关键字:

usb设备的驱动程序名称