草庐IT

网卡驱动OpenStack

全部标签

windows - 设备驱动程序 IRQL 和线程/上下文切换

我是Windows设备驱动程序编程的新手。我知道某些操作只能在IRQLPASSIVE_LEVEL执行。例如,Microsoft有关于如何从内核驱动程序写入文件的示例代码:if(KeGetCurrentIrql()!=PASSIVE_LEVEL)returnSTATUS_INVALID_DEVICE_STATE;Status=ZwCreateFile(...);我的问题是:是什么阻止了在上面的KeGetCurrentIrql()检查之后引发IRQL?假设发生上下文或线程切换,当它返回到我的驱动程序时,IRQL会不会突然变为DISPATCH_LEVEL,然后导致系统崩溃?如果这不可能,那么

c++ - 你能推荐一个有趣的适合新手的驱动程序吗?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6个月前。Improvethisquestion我是驱动程序开发的新手,开始寻找有趣的驱动程序相关任务。

windows - 学习 Windows 驱动程序开发的最佳资源是什么?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestionlinux驱动开发可以引用windows驱动开发呢?更新有这方面的好书吗?

windows - 32 位用户模式驱动程序可以在 64 位操作系统上运行吗?

我一直在查看一些关于64位驱动程序开发的信息;我发现必须重写驱动程序才能与64位操作系统兼容。但是,我想知道这是否也适用于用户模式驱动程序。我问这个的原因是因为我的理解是用户模式驱动程序通过Win32API,所以理论上它们应该能够在WOW32之上运行。这是真的吗?谢谢,海梅 最佳答案 用户模式驱动程序可以是32位或64位,但请注意以下几点:用于打印、扫描和相机的用户模式驱动程序必须是64位。不允许使用旧版API(特定于WindowsNT®4.0)。http://www.microsoft.com/whdc/driver/kernel

c - 如何多播(发送)到第一个网卡?

我最近发现,如果我有一个拨号连接(这是用于信息亭)和一个局域网连接,当拨号连接建立时(通过互联网访问),我的多播sendto将默认为拨号而不是我的LANNIC。这使得多播发送到拨号连接,而不是发送到我有多个多播订阅者的LAN。我知道我需要使用IP_MULTICAST_IF来设置我的多播套接字上的接口(interface)。问题是如何枚举接口(interface)以及如何在setsockopt中使用IP_MULTICAST_IF?在WindowsXPEmbedded信息亭上,始终只有一个本地连接NIC。我如何获得此接口(interface)并将其IP地址(这是IP_MULTICAST_I

windows - 2个windows内核模式驱动程序之间的通信

之前从未开发过任何驱动程序。无论如何,我现在正在编写2个简单的Windows内核模式驱动程序,这2个驱动程序将安装到2个不同的设备上,这些设备连接到2个不同的总线(ISA总线/PCI总线),并且这2个驱动程序需要以某种方式与还期望彼此和数据交换,有什么有效的方法可以实现吗?内核事件可能可以启用同步,但数据交换如何?在用户模式下,管道/套接字可能是一个选项,但在内核模式下,是否有命名管道或其他东西的对应物?谷歌表示没有用于内核模式管道使用的记录API...我对Windows驱动程序框架不是很熟悉,希望我说得有道理..谢谢! 最佳答案

罗技鼠标G304驱动与讲解(其余类型驱动见文末)

罗技鼠标G304驱动与讲解首先给大家罗技鼠标G304的驱动:(其余类型驱动见文末)https://download01.logi.com/web/ftp/pub/techsupport/gaming/LGS_9.02.65_x64_Logitech.exe下载按步骤来就行,没有什么难的地方,要注意一点,电脑在安装好驱动要重启,驱动在第一次打开的时候有个了解更多的界面,关掉此界面后就会出现罗技鼠标的配置界面,如下图所示:鼠标点击不同的按键会出现按键的设计界面在上图界面右下角有个彩色按键,点击该按键会进入鼠标按键次数检测,可以关闭界面一直检测,实时查看鼠标每个按键的点击次数,非常好用将鼠标放在按键

windows - 从 32 位应用程序使用 64 位驱动程序

我有一个必须以32位运行的Windows应用程序(因为我无法控制的其他限制)。但是,我的应用程序必须调用和访问可能是32位或64位的驱动程序,具体取决于安装它的系统。我通过DeviceIoControl()调用访问驱动程序,交换包含文件中声明的数据结构。数据结构包含声明为“DWORD_PTR”的字段(我也不控制的包含文件)。我的问题是,在64位系统上,驱动程序希望结构包含64位整数(因为DWORD_PTR声明)。但是,我的32位程序将那些DWORD_PTR视为32位整数。然后,我的数据结构程序版本与驱动程序对这些结构的理解之间存在数据不匹配。DeviceIoControl()最终因ER

c++ - C/C++ USB 驱动器事件

关于Windows平台,我可以查找它们的事件来判断我们何时插入了USB驱动器或任何类型的可移植媒体吗? 最佳答案 如果不先注册,您将不会收到此类通知。使用RegisterDeviceNotification()来做到这一点。在您注册接收此类通知的窗口后,处理WM_DEVICECHANGE消息。 关于c++-C/C++USB驱动器事件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

windows - 在本地 NTFS 驱动器上查找回收站

我正在尝试编写一些简单的代码来返回本地驱动器上回收站的目录。看起来很简单——应该是Google上的一千个答案。还没找到:(我发现FAT和NTFS驱动器有不同的基本名称(RECYCLED和RECYCLER)。我发现'the'回收站是一个虚拟文件夹,它结合了机器上所有驱动器的回收站。我还没有找到找到C:驱动器的回收站目录的方法——即使在越南语(或任何其他非英语)机器上也是如此。(我找不到任何帖子表明“RECYCLER”是否国际化)谁能给我一个明确的答案?谢谢更新:了解CSIDL_BITBUCKET和使用它的函数。从我读过的所有内容来看,它指向一个虚拟目录,该目录是该用户在所有驱动器上删除的