
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              :


