
windows
文章平均质量分 59
站长漫谈
技术交流
展开
-
HID.DLL导出函数HidD_GetInputReport探究
##HidD_GetInputReport的功能HidD_GetInputReport用于获取输入报告(input report)。说明:不过微软关于此函数有一个特别的说明,就是只能获取当前的输入报告,不能连续的获取,因为可能会丢数据。所以如果要连续的获取输入报告,需要使用ReadFile函数。同时,有些设备可能不支持HidD_GetInputReport,所以使用此函数时可能没有响应。更多详见:https://docs.microsoft.com/en-us/windows-hardware转载 2022-05-10 14:30:51 · 951 阅读 · 0 评论 -
使用SETUPAPI函数解析INF中的硬件ID
安装Windows驱动,首先得知道INF支持的硬件ID.本人手中有一个测试的inf文件,其内容如下:设备支持的硬件ID如下:字符串内容如下:编写一个程序,用来解析INF文件。代码如下:#include <iostream>#include <windows.h>#include <SetupAPI.h>#pragma comment(lib,"setupapi.lib")int main(){ HINF hInf = SetupOpe原创 2021-05-10 19:02:40 · 584 阅读 · 0 评论 -
批处理调用devcon确保虚拟驱动设备只存在安装一次
使用wdm开发了一个虚拟USB总线驱动,驱动安装后会虚拟出指定的子设备。不过由于是手动安装的,所以如果不停地进行安装,驱动会安装多次,这样虚拟出来的设备就变成了,-2,3等这样的设备名。如果是手动操作,一切有眼睛的指导,肯定可以确保只安装一次。但实际我们是通过批处理实现的,所以如果应用程序不停的调这个批处理,设备管理器会爆炸。所以我们的操作是这样的,先进行驱动更新,如果更新失败,可以确定设备不存在,那么如果设备不存在,我们就再安装。如果存在,更新了也就更新了,由于是同一个驱动,实际PNP管理器好像就无原创 2021-04-22 16:32:54 · 911 阅读 · 0 评论 -
Windows设备管理器中的错误代码
适用于:Windows 10 Pro released in July 2015,Windows 10 Enterprise released in July 2015,Windows 8概要本文涵盖了 Windows 中由“设备管理器”生成的错误代码。 你可能由于“设备管理器”或其他工具(如 DXDiag)报告了错误代码,而且你不知道如何解决,而访问过这篇文章。在本文中,我们将帮助你找到你的错误代码,并提供你尝试纠正错误可能需要的建议。首先尝试以下步骤:首先,尝试以下任何常见解决方...原创 2021-04-14 09:15:57 · 22399 阅读 · 0 评论 -
学习驱动开发和调试的网站
对于从事Windows驱动开发的朋友,或者是对Windows内核感兴趣的朋友,以下几个BLOG值得经常看看!1,Kernel Mustard by Steve Dispensa link:http://kernelmustard.com/category/ddk/他以前的BLOG地址为:http://msmvps.com/blogs/kernelmustard/default.aspx2,Larry Osterman's WebLog - Confessions of an Old Fogey.原创 2021-04-13 10:18:26 · 273 阅读 · 0 评论 -
UVC协议CT_ZOOM_RELATIVE_CONTROL选择子放大缩小停止的问题
喵的,今天同事反应,开发的虚拟驱动PTZ功能Zoom放大缩小时,可以开始,但是停止的时候错误。在应用层DirectShow应用层的代码如下:void CCamera::SetZoom(int value, int delay){ HRESULT hr = 0; long flags = KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE | CameraControl_Flags_Manual; hr = m_pCamControl->Set原创 2021-04-07 14:49:38 · 1025 阅读 · 2 评论 -
Windows检测硬件插入和/或移除
一个用户模式的应用程序,用于检测硬件的添加/删除与WM_DEVICECHANGE 和 RegisterDeviceNotification()源代码:https://www.codeproject.com/KB/system/HwDetect/HwDetect_src.zip演示DEMO:https://www.codeproject.com/KB/system/HwDetect/HwDetect_exe.zip介绍热插拔设备现在是IT安全的一大威胁。在本文中,我们将尝试开发一个用户模式应用程序来原创 2021-04-07 09:19:50 · 1523 阅读 · 0 评论 -
Windows操作系统的USB驱动架构
Winows操作系统下关于USB的驱动可分为:Windows2000在Windows2000时代,USB设备基本是USB1.0.USB1.1和少量的USB2.0设备。所以USB驱动架构构为:Windows2000 USB控制器usbd.sys - Universal Serial Bus Driver 这是USB控制器的类驱动程序,配合2个端口驱动程序openhci.sys和uhcd.sys,这2个端口驱动分别对应于usb1.0和usb.1.1Windows2000 USB集线器-HUBUS原创 2021-04-06 16:27:45 · 1807 阅读 · 0 评论 -
多声卡同时发声的技术方案
在Windows操作系统下,一般只能选择一个扬声器发声音。如在Windows10中的扬声器列表如下:那么有没有让这些扬声器同时发声呢?如我们可以使用类似e2esoft进供的方案,在电脑是虚拟一个声卡,然后让这个虚拟的声卡做为做为电脑默认的虚拟声卡。然后在应用层可以通过wasapi函数获取默认声卡的数据,再二次分发给我们需要播放声音的声卡,这样就完成了多个声卡同时播放声音。虚拟声卡的开发Windows提供了参考DEMO驱动,主要使用的是portclass进行虚拟开发。portclass的开发相关技术资原创 2021-04-02 09:56:41 · 2972 阅读 · 5 评论 -
DbgPrint引起的蓝屏
要说,我也是个人才,原来觉地没有任何问题的代码,编译签名,然后测试,没想到装上后一运行就蓝屏。系统报:IRQL_NOT_LESS_OR_EQUAL (a)An attempt was made to access a pageable (or completely invalid) address at aninterrupt request level (IRQL) that is too high. This is usuallycaused by drivers using improp原创 2021-01-14 12:05:20 · 862 阅读 · 0 评论 -
驱动重载new和delete
平常开发的驱动都是语言的,但对于显卡,音频等实时性要求较高的驱动,windows在应用层使用了comm技术,而在内核中使用类的方法来开发。所以就会使用C++开发,但在内核中不能直接使用new和delete运算符,故需要进行重载.相关的代码详见:https://www.bytekits.com/wdm/windrv-use-new-delete.html...原创 2020-11-23 18:47:27 · 292 阅读 · 0 评论 -
USB,HID,UVC学习资料及源码分析
总结一下USB及相关的学习资料:USB中文规范https://www.bytekits.com/usb/usb-introduce.htmlUVC摄像头规范https://www.bytekits.com/uvc/uvc-intro.htmlHID规范https://www.bytekits.com/hid/hid-intro.htmlwindows下的通用驱动usbccgp.sys源代码分析(基于reactos)https://www.bytekits.com/usbccgp/us...原创 2020-11-19 09:47:57 · 497 阅读 · 0 评论 -
libuv windows搭建
系统准备windows系统中装有visual studio 软件开发包。如本教程中使用的平台是:windows 7 旗舰版 x64 Microsoft Visual Studio 2013 updatelibuv windows平台搭建步骤 下载libuv:https://github.com/libuv/libuv 打开gibhub网站后,点击Clone or download按钮后,在弹出的对话框中选择Download ZIP文件。将下载后的文件解压到磁盘中。如本人解压的磁盘为C:原创 2020-05-12 20:15:00 · 1754 阅读 · 1 评论