【发布时间】:2013-09-01 08:22:10
【问题描述】:
我正在开发一个程序,该程序收集有关系统上正在运行的进程的一些统计信息。
我有一个代码,它检索一些常规信息,例如可执行文件版本、发布者等。
在我打开 lsass.exe 之前,该代码对我来说运行良好。 当我尝试打开文件进行读取时,CreateFile 失败并出现错误 ERROR_FILE_NOT_FOUND。
代码如下:
auto FileHandle
= CreateFile(file_to_process.c_str(), // C:\Windows\System32\lsass.exe
GENERIC_READ,
FILE_SHARE_DELETE|FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if ( INVALID_HANDLE_VALUE == FileHandle )
{
int err_v = GetLastError(); // ERROR_FILE_NOT_FOUND
}
此代码是系统服务的一部分,以“SYSTEM”权限运行。
【问题讨论】:
-
c_str()闻起来像 C++。 -
嗯,以编程方式检索到的路径。所以,是的 - 路径被转义了。
标签: c windows winapi windows-8 createfile