阅读:1346回复:5
winxp ddk 的src里面的cancel例程,为什么运行出错?
我的配置:winxp sp2 + vc.net + winxp ddk
build好以后,运行canclapp.exe,提示说 Driver: PCIDUMPR.SYS is not in the system directory. 查源程序,好像是因为CreateFile(DriverLocation, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL )== INVALID_HANDLE_VALUE 导致,其中DriverLocation其实是存放cancel.sys的路径及文件名的PUCHAR,可我已经把cancel.sys拷入windows\system32了. 哪里出了问题呢? |
|
沙发#
发布于:2005-01-24 17:07
他说得是PCIDUMPR.SYS不在系统目录,
应该吧那个拷贝过去 |
|
|
板凳#
发布于:2005-01-24 19:56
可是,哪里有这个PCIDUMPR.SYS呢?
我搜索了整个windows文件夹,没有这个文件. |
|
地板#
发布于:2005-01-24 20:11
是否用xpddk开发的driver在winxp sp2里面不能用?
|
|
地下室#
发布于:2005-01-25 08:58
他说得是PCIDUMPR.SYS不在系统目录, 看了一下那个文件,问题可能的原因, cancel.sys文件应该放在当前目录, 即和cancel.exe放到同一个目录, 程序在当前目录打开,而不是在系统目录 driverLocLen = GetCurrentDirectory(MAX_PATH, DriverLocation ); if (!driverLocLen) { printf("GetCurrentDirectory failed! Error = %d \n", GetLastError()); return FALSE; } // // Setup path name to driver file. // strcat(DriverLocation, "\\"); strcat(DriverLocation, DRIVER_NAME); strcat(DriverLocation, ".sys"); // // Insure driver file is in the specified directory. // if ((fileHandle = CreateFile(DriverLocation, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL )) == INVALID_HANDLE_VALUE) { printf("Driver: PCIDUMPR.SYS is not in the system directory. \n"); // // Indicate failure. // return FALSE; } |
|
|
5楼#
发布于:2005-01-25 10:20
真的是这个原因,多谢.
已给分. |
|