由于重装系统,以前的驱动调试环境都被破坏了,今天只好重新搭建一个。
我是用visual softice 和虚拟机来搭建的。符号路径设置为:symrv*symsrv.dll*F:\WINDOWS\Symbols\*http://msdl.microsoft.com/download/symbols
F:\WINDOWS\Symbols\是我的本地符号文件安装路劲。可是连上虚拟机后,显示ntkrnlpa.exe can't find pdb symbol file.请问这个是怎么回事?难道是我的机子没有ntkrnlpa这个符号文件吗?我是xp sp2的系统。在线等,急!!!有答案马上结贴
我是用visual softice 和虚拟机来搭建的。符号路径设置为:symrv*symsrv.dll*F:\WINDOWS\Symbols\*http://msdl.microsoft.com/download/symbols
F:\WINDOWS\Symbols\是我的本地符号文件安装路劲。可是连上虚拟机后,显示ntkrnlpa.exe can't find pdb symbol file.请问这个是怎么回事?难道是我的机子没有ntkrnlpa这个符号文件吗?我是xp sp2的系统。在线等,急!!!有答案马上结贴
http://www.pcdog.com/edu/system-software/2006/09/h143145.html
http://www.codeproject.com/KB/debug/cdbntsd6.aspx
另外
symrv*symsrv.dll*F:\WINDOWS\Symbols\*http://msdl.microsoft.com/download/symbols
应该是
symsrv*symsrv.dll*F:\WINDOWS\Symbols\*http://msdl.microsoft.com/download/symbols
少了个字母r.
char *buffer=ExAllocatePool(PagedPool,MAXFILEPATH);
HANDLE file_handle=NULL ;//打开文件全局句柄
ULONG length;
NTSTATUS status;
OBJECT_ATTRIBUTES object_attributes;
IO_STATUS_BLOCK io_status={0};
LARGE_INTEGER offset={0};
UNICODE_STRING filepath = RTL_CONSTANT_STRING(L"\\??\\c:\\protect.txt");
length = MAXFILEPATH;
//初始化OBJECT_ATTRIBUTES
InitializeObjectAttributes((POBJECT_ATTRIBUTES)&object_attributes,&filepath,OBJ_CASE_INSENSITIVE|OBJ_KERNEL_HANDLE,NULL,NULL);
//打开文件
status=ZwCreateFile(&file_handle,FILE_READ_DATA,&object_attributes,&io_status,NULL,FILE_ATTRIBUTE_NORMAL,
FILE_SHARE_READ,FILE_OPEN_IF,FILE_NON_DIRECTORY_FILE|FILE_RANDOM_ACCESS|FILE_SYNCHRONOUS_IO_NONALERT,
NULL,0);
if (!NT_SUCCESS(status))
{
DbgPrint("create file error %x\n",(ULONG)status);
return status;
}
status = ZwReadFile(file_handle,NULL,NULL,NULL,&io_status,buffer,length,&offset,NULL);//把文件中的东西读入缓冲
if (!NT_SUCCESS(status))
{
if (status==STATUS_END_OF_FILE)//注意,如果到达文件尾的话,那么返回值是一个负数.
{
DbgPrint("read all files\n");
ZwClose(file_handle);
status=STATUS_SUCCESS;
}
else
{
DbgPrint("read file error\n");
ZwClose(file_handle);
return status;
}
}为什么不能把文件的内容读完?我给的buffer缓冲比文件内容大啊。
把 FILE_OPEN_IF改为 FILE_OPEN 看看。