Files
build_driver/windows_driver/windows驱动开发
T
2026-07-07 15:39:46 +08:00

77 lines
1.9 KiB
Plaintext

BCD = Boot Configuration Data Windows 的启动配置数据库
BCDEdit = Boot Configuration Data Editor 命令行工具,专门用来查看和修改 BCD 里的内容
Boot Manager 启动管理程序
bcdedit = Boot Configuration Data Editor (启动配置数据编辑器)
在开机时被固件拉起来
读取 BCD
决定应该启动哪个启动项
把控制权交给下一阶段加载器
把当前启动项的 内核调试开关 打开
Bcdedit /debug on
开启调试模式
bcdedit /set {current} testsigning on
设置串口输出
Bcdedit /dbgsettings serial baudrate:115200 debugport:1
bcdedit /enum {current}
禁用数字驱动签名之后可以看到底下有一个 测试模式的水印
穿透驱动安装方式
certutil -addstore Root Psc_Driver_Cert.cer
certutil -addstore TrustedPublisher Psc_Driver_Cert.cer
sc start FirstDriver
sc stop FirstDriver
sc query FirstDriver
sc delete FirstDriver
sc create FirstDriver binPath= “c:\psc\kernel_helloworld.sys” type= kernel
安装驱动
pnputil /add-driver psc_driver.inf /install
卸载驱动
pnputil /enum-drivers
pnputil /delete-driver psc_driver.inf /uninstall /force
查找系统实例id
pnputil /enum-devices /connected
pnputil /enum-devices /class "System"
找到类似:Instance ID: ROOT\MYTESTDEVICE\0000 然后才能删除
pnputil /remove-device "ROOT\MYTESTDEVICE\0000"
设备(devnode)决定驱动“是否运行”,驱动包(Driver Store)决定驱动“是否存在”;两者独立但通过绑定关系连接。
SERVICE_NAME: FirstDriver
TYPE : 1 KERNEL_DRIVER
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 0
FLAGS :