Windows应用程序响应主板上GPIO(SCI)设备中断 软件篇https://t.cn/A6tHbp38
本文为看雪论坛精华文章
看雪论坛作者ID:hyjxiaobia
在上一篇Windows应用程序响应主板上GPIO(SCI)设备中断 硬件篇只完成了2件事:
1. Bios接收GPIO SCI事件;
2. Bios转发SCI事件到ACPI命名空间\_GPE.Method(_L56),然后打印日志。
本文将处理从硬件层移至软件层,完成下列2步:
1. Method(_L56)通知ACPI.sys;
2. 驱动接收及处理ACPI Notification(MSDN将这类来自BIOS的SCI事件称为ACPI Notification)。
以下是实现该目标的步骤:
Step1. 创建承上启下的虚拟设备
设备驱动程序必然依存于某类设备(DeviceNode),这类设备或真实存在,或虚拟创建。虽然本段的标题写的是创建虚拟设备,但该虚拟设备不同于Winddk Sample中Toast创建的设备----Toast通过IoCreateDevice创建,而是由Bios在ACPI命名空间中创建的设备,希望读者加以区分。
那么这样的虚拟设备该怎么创建?ACPI Spec 5.4节有现成可用的例子!很多OEM厂商为了实现硬件增值功能就会创建这种虚拟设备,比如联想(联想打钱!)ThinkPad的"Lenovo PM Device"就属于此。我们可以借助RW utility查看它的实现:
本文为看雪论坛精华文章
看雪论坛作者ID:hyjxiaobia
在上一篇Windows应用程序响应主板上GPIO(SCI)设备中断 硬件篇只完成了2件事:
1. Bios接收GPIO SCI事件;
2. Bios转发SCI事件到ACPI命名空间\_GPE.Method(_L56),然后打印日志。
本文将处理从硬件层移至软件层,完成下列2步:
1. Method(_L56)通知ACPI.sys;
2. 驱动接收及处理ACPI Notification(MSDN将这类来自BIOS的SCI事件称为ACPI Notification)。
以下是实现该目标的步骤:
Step1. 创建承上启下的虚拟设备
设备驱动程序必然依存于某类设备(DeviceNode),这类设备或真实存在,或虚拟创建。虽然本段的标题写的是创建虚拟设备,但该虚拟设备不同于Winddk Sample中Toast创建的设备----Toast通过IoCreateDevice创建,而是由Bios在ACPI命名空间中创建的设备,希望读者加以区分。
那么这样的虚拟设备该怎么创建?ACPI Spec 5.4节有现成可用的例子!很多OEM厂商为了实现硬件增值功能就会创建这种虚拟设备,比如联想(联想打钱!)ThinkPad的"Lenovo PM Device"就属于此。我们可以借助RW utility查看它的实现:
@Funarp 超长了。整理一下。
libusb-win32 是 libusb-0.1 的 fork,已停止维护;libusbK 是 libusb-win32 的衍生版本 (Windows 风格的 API);libusb-1.0 是另一套全新的 API。
libusb-1.0 在 Windows 下对应的驱动是 WinUSB.sys (Windows 用户态程序不能直接操作硬件,需要经过驱动中转)。
libusb-win32 和 libusbK 对应的驱动是 libusb0.sys 和 libusbK.sys,且可以互换使用。
------
另外,Chromium/Chrome 的 WebUSB 底层是使用 libusb-1.0 实现的。也就是说在 Windows 上操作非标准设备需要撘配 WinUSB.sys 使用。
libusb-win32 是 libusb-0.1 的 fork,已停止维护;libusbK 是 libusb-win32 的衍生版本 (Windows 风格的 API);libusb-1.0 是另一套全新的 API。
libusb-1.0 在 Windows 下对应的驱动是 WinUSB.sys (Windows 用户态程序不能直接操作硬件,需要经过驱动中转)。
libusb-win32 和 libusbK 对应的驱动是 libusb0.sys 和 libusbK.sys,且可以互换使用。
------
另外,Chromium/Chrome 的 WebUSB 底层是使用 libusb-1.0 实现的。也就是说在 Windows 上操作非标准设备需要撘配 WinUSB.sys 使用。
怎么说 我很担心 我很难受
搭档sys 行 得考虑l/sw的伤病 但对于xx来说 搭档到现在都不确定 他心里什么感受 谁会在乎呢 我心疼他[作揖]
单打不稳定 因为什么 教练组不清楚吗 就离谱[作揖]
“用这两站的单打冠军来找回状态和信心” 这话怎么这么熟悉呢 我记得19年初l/sw参加葡萄牙挑战赛 m琳说是去增加信心 结果输给了早田希娜 特么的这种事能不能别提前画饼呀 我怕了[作揖]
搭档 祝好 快恢复吧 早点确定是否继续成为搭档[作揖]
卡塔尔安全吗 来参赛的别国运动员安全吗 出国回国安全吗 这种情况下 希望乒协给点力 赢不赢的 保障安全
搭档sys 行 得考虑l/sw的伤病 但对于xx来说 搭档到现在都不确定 他心里什么感受 谁会在乎呢 我心疼他[作揖]
单打不稳定 因为什么 教练组不清楚吗 就离谱[作揖]
“用这两站的单打冠军来找回状态和信心” 这话怎么这么熟悉呢 我记得19年初l/sw参加葡萄牙挑战赛 m琳说是去增加信心 结果输给了早田希娜 特么的这种事能不能别提前画饼呀 我怕了[作揖]
搭档 祝好 快恢复吧 早点确定是否继续成为搭档[作揖]
卡塔尔安全吗 来参赛的别国运动员安全吗 出国回国安全吗 这种情况下 希望乒协给点力 赢不赢的 保障安全
✋热门推荐