我想让我的第一个驱动程序在Windows上运行,它所做的就是将helloworld打印到调试器中。
我用“fre x64 WIN7”设置编译它,测试它,并打开测试模式。它位于我的桌面上,路径名为C:\Users\Ivan\Desktop\helloworld.sys
。在注册表中,ImagePath为C:\Users\Ivan\Desktop\helloworld.sys
。
我仍然得到error 123 "The filename, directory name, or volume label is incorrect"
任何人都可以给我一些关于错误可能原因的指示吗?
创建包含3个文件的目录。源 -
TARGETNAME=helloworld
TARGETTYPE=DRIVER
TARGETPATH=obj
INCLUDES=..\..\inc
SOURCES = driver.c
makefile-!INCLUDE $(NTMAKEENV)\makefile.def
driver.c
#include <ntddk.h>
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObject, PUNICODE_STRING pRegistryPath){
DbgPrint("Hello World!\n");
return STATUS_SUCCESS;
}
将其保存在cmd
中cd C:\WinDDK\7600.16385.1\bin
setenv C:\WinDDK\7600.16385.1\ fre x64 WIN7
cd C:\WinDDK\7600.16385.1\sources\mydrivers
build
建立证书并签署驱动程序。
MakeCert.exe -r -pe -ss PrivateCertStoreName -n "CN=IvanCert" IvanCert.cer
CertMgr /add IvanCert.cer /s /r localMachine root
signtool.exe sign /v /s IvanCertStoreName /n IvanCert helloworld.sys
signtool.exe verify /pa /v helloworld.sys
在cmd中删除以下行
sc create test1 binPath= "C:\helloworld.sys"
sc start test1
收到错误129所以我打开了regedit.exe并将test1中的类型从x10更改为x01
目前有错误123