问题标签 [drivers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
791 浏览

applet - 通过 Java 小程序安装驱动程序

只是想知道是否有人有通过 Java Applet 安装硬件驱动程序的经验。我目前正在编写一个小程序,它将访问一些硬件并将嵌入到网页中。为了让最终用户更轻松,我想让它检测是否安装了驱动程序,如果没有安装它们。

这将是一个签名的小程序,因此它应该能够访问文件和系统信息。据我了解,驱动程序只是放置在正确位置的几个系统文件以及一些注册表设置。

这是可行的吗?我在网上找不到任何关于这样做的信息。

0 投票
1 回答
2297 浏览

windows - Windows XP 的透明代理

我有一个在 Windows XP 下运行的实验性 TCP/IP 堆栈。此堆栈使用 LSP 和 NDIS IM 绕过 Windows TCP/IP 堆栈。我现在需要为此提供代理服务,以支持其他想要使用实验堆栈的平台。代理必须对客户端透明(无客户端配置)。我想在用户模式下运行此代理服务,其中我使用普通 Windows TCP/IP 与客户端建立 TCP 连接,并通过实验堆栈以另一种方式建立 TCP 连接。一旦以这种方式连接,代理只会在两者之间进行读/写。我正在努力解决的问题是如何从客户端获取一个发往某个地址/端口的传入数据包并将其重定向到我的代理,同时仍然保持对原始目标地址/端口的了解,因此代理可以将数据包转发到正确的目的地。我会很感激这方面的任何想法。谢谢...

0 投票
10 回答
38594 浏览

c# - 控制 USB 端口的电源?

有人知道如何控制某个 USB 端口上的 USB 引脚吗?我认为这在汇编程序中肯定是可能的,但是 C++ 或 C# 呢?

我希望能够使用 USB 电池作为 LED 或类似设备的电源。所以然后一个程序会打开它并关闭它使其闪烁。

我知道这听起来毫无意义,但我需要做一些很棒的事情。

我也知道它可能需要自定义驱动程序。

0 投票
3 回答
19862 浏览

windows - Windows中的最大驱动器数?

我试图在 Windows 中以编程方式找出可用的磁盘空间。为此,我需要首先获取可用驱动器的列表,然后检查其中哪些是本地驱动器,然后查询每个本地驱动器上的可用字节。

我有点卡在第一部分,API 提供了两个功能:

  1. GetLogicalDriveshttp://msdn.microsoft.com/en-us/library/aa364972(VS.85).aspx)它为您提供了一个设置了位的 DWORD(如果存在驱动器 A,则为位 0,如果驱动器 B 等,则为位 1 )
  2. GetLogicalDriveStringshttp://msdn.microsoft.com/en-us/library/aa364975(VS.85).aspx)它为您提供了实际的字符串。

现在,虽然我稍后会使用字符串,但我更喜欢使用第一个选项进行查询。但是,在我的系统上,DWORD 的类型定义为“unsigned long”,即 4 个字节,而驱动器号仅在 AZ 范围内(我认为是 26 个字符)。显然,一个人可以在他们的系统上定义超过 26 个驱动器(尽管他们不太可能这样做) - 所以我想知道这些驱动器是否有任何约定。有人可以指出我的资源吗?

谢谢。

0 投票
6 回答
15122 浏览

unit-testing - 单元测试设备驱动程序

我有一种情况,我需要为嵌入式硬件的一些设备驱动程序编写一些单元测试。代码很旧而且很大,不幸的是没有很多测试。目前,唯一可能的测试是完全编译操作系统,将其加载到设备上,在现实生活场景中使用它并说“它可以工作”。没有办法测试单个组件。

我在这里遇到了一个不错的线程,它讨论了嵌入式设备的单元测试,我从中获得了很多信息。我想更具体一点,并询问是否有人在这种情况下测试设备驱动程序有任何“最佳实践”。我不希望能够模拟相关板正在与之交谈的任何设备,因此可能必须在实际硬件本身上对其进行测试。

通过这样做,我希望能够获得驱动程序的单元测试覆盖率数据,并哄骗开发人员编写测试以增加驱动程序的覆盖率。

我想到的一件事是编写在操作系统上运行的嵌入式应用程序并运行驱动程序代码,然后将结果传达回测试工具。该设备有几个接口,我可以使用它们来驱动我的测试 PC 上的应用程序,以便我可以练习代码。

任何其他建议或见解将不胜感激。


更新:虽然它可能不是准确的术语,但当我说单元测试时,我的意思是能够测试/执行代码而无需编译整个 OS+驱动程序并将其加载到设备上。如果我必须这样做,我会称之为集成/系统测试。

问题是我们拥有的硬件是有限的,开发人员经常在修复错误等时使用它们。保持一个专用并连接到完成 CI 服务器和自动化测试的机器可能是不可以的这个阶段。这就是为什么我正在寻找方法来测试驱动程序,而不必实际构建整个东西并将其上传到设备上。


概括

基于以下出色的答案,我认为解决该问题的合理方法是使用 IOCTL 公开驱动程序功能,然后在嵌入式设备的应用程序空间中编写测试以实际运行驱动程序代码。

将一个小程序驻留在设备上的应用程序空间中也很有意义,该程序公开了一个 API,该 API 可以通过串行或 USB 运行驱动程序,以便可以在 PC 上编写单元测试的内容,该 PC 将与硬件并运行测试。

如果项目刚刚开始,我认为我们可以更好地控制组件的隔离方式,以便主要在 PC 级别进行测试。鉴于编码已经完成并且我们正在尝试将测试工具和案例改进到系统上,我认为上述方法更实用。

谢谢大家的回答。

0 投票
1 回答
7052 浏览

odbc - 用于 Oracle 语法错误或访问冲突的 Microsoft ODBC 驱动程序 (-2147217900)

我有一个连接到 Oracle 数据库的大型 VB 程序。

我的程序有很多用户,所以我有一个表,其中包含每个用户的登录名和他们对各个表的访问权限。我在程序启动时创建了所有用户的记录集,然后从找到 USERNAME 和 PASSWORD 的记录集中选择 USERNAME 和 GRANTED_ROLE。我使用“设置角色'GRANTED_ROLE'由'password'标识”语句和Cn.Execute 语句来设置用户的访问权限。这一切都在一个模块中完成。

在一个表单上,我想调用一个存储过程,它将 SELECT、INSERT 和 UPDATE 信息放入另一个模式的表中。当我使用以下代码创建与数据库的新连接时,我可以调用并运行存储过程:

暗淡 cmd5040 作为 ADODB.Command 暗淡 conn5040 作为 ADODB.Connection 暗淡 param5040 作为 ADODB.Parameter

Set conn5040 = New ADODB.Connection conn5040 = "Driver={Microsoft ODBC for Oracle};" & _ "SERVER=PSPROD;UID=XXXXXXX;PWD=XXXXXXXX" conn5040.Open

设置 cmd5040 = 新的 ADODB.Command

使用 cmd5040 .ActiveConnection = conn5040 .CommandType = adCmdStoredProc .CommandText = "S4115040_IMPORT_NEWBIDITEMSPES.S4115040_CheckTime"

结束于

cmd5040(0) = 0 cmd5040(1) = "" cmd5040.CommandTimeout = 300

cmd5040.执行conn5040.关闭

但是,当我在程序首次启动时尝试使用相同的连接 ('Cn') 时,会收到错误消息“-2147217900 [Microsoft][ODCB driver for Oracle]语法错误或访问冲突”。我的代码是:

暗淡 cmd5040 作为 ADODB.Command 暗淡 param5040 作为 ADODB.Parameter

设置 cmd5040 = 新的 ADODB.Command

使用 cmd5040 .ActiveConnection = Cn .CommandType = adCmdStoredProc .CommandText = "S4115040_IMPORT_NEWBIDITEMSPES.S4115040_CheckTime"

结束于

cmd5040(0) = 0 cmd5040(1) = ""

cmd5040.执行

我和我的 DBA 一起工作过。她给了我直接授权和直接执行权限,但我仍然收到错误消息。

我究竟做错了什么?我应该能够使用原始连接来运行存储过程吗?还是我必须创建第二个连接?

0 投票
3 回答
18793 浏览

database - 数据库驱动程序和数据库方言之间的区别

数据库驱动程序和数据库方言有什么区别?

0 投票
1 回答
91 浏览

windows - 安装后如何让 Windows 记住我的设备,这样我就不会在每次连接时都收到新设备消息?

我有一个我们创建的硬件,它通过 USB 连接到我的 PC。我们还为它编写了驱动程序。每次我插入此设备时,都会出现新设备消息,即使已安装驱动程序。我可以取消该对话框,它工作正常,但它看起来像废话,我将销售此产品并希望它像其他 USB 产品一样运行,并且只抛出此对话框一次。

我该如何做到这一点?

0 投票
4 回答
94227 浏览

c - 我应该如何开始编写设备驱动程序?

我想学习如何编写设备驱动程序,因为我认为这会很有趣。我使用 Mac OS X Macbook,但我也有一台 Ubuntu 机器(在 Mac Min 上运行)。我对 C 非常熟悉,目前正在阅读这本书。我在网上找到了一些链接,例如Mac Dev Center。我这样做是因为它会很有趣。我认为看到硬件由于我编写的软件而运行会非常令人满意。

我想我想要的是一些提示或建议和指导,有没有人知道没有驱动程序的设备列表,或者我可以为已经支持的东西编写驱动程序(更喜欢前者,所以我实际上提供价值)。什么是入门的好设备?我咬得比我能咀嚼的多吗?我不害怕低级编程或组装或任何需要付出的努力。我真的很想挑战!

0 投票
2 回答
2319 浏览

windows-services - 相同的 Windows 服务是否按登录用户运行?

我正在构建一个 Windows 服务,该服务根据登录的 Windows 用户执行不同的操作。如果我在一个用户下安装我的服务,并将其设置为启动,将为每个登录的用户运行一个单独的实例, 继续运行,即使当前有多个用户登录?

这是我想要的行为,但如果不可能,我将不得不计划其他事情。

一般来说,每个用户登录会话是否都像自己的独立环境?换句话说,如果我安装了一个通过命名管道与我的服务交互的驱动程序,那么从当前登录用户的驱动程序发送的管道消息是否也会被其他登录用户下运行的其他服务实例接收(假设如上所述,它们确实运行单独的实例)?或者他们是完全独立的环境,有自己的驱动程序/内核实例?