调用的错误在Windows7
-
23-08-2019 - |
题
我注意到,如果路径参数 CreateFile
功能目标 \Windows\System32\
话是失败的,与以下错误代码 ERROR_PATH_NOT_FOUND
.
该文件的道路是正确的,我文件夹的所有者,所以问题是为什么叫失败?有没有MS加入特殊的政策禁止的文件夹,从被访问的?
样本代码:
TCHAR szFile[MAX_PATH];
PathCombine(szFile, g_szSystemDirectory, "settings.ini");
HANDLE hFile = CreateFile(szFile,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
printf("INVALID FILE: %i", GetLastError());
return FALSE;
}
解决方案
- 我们可以看到一些例代码?
- 你有指定的驱动,即"C:\Windows\System32\"
- 你想打开文件内system32?
- 这不会发生在Windows7仅?和
- 为什么你需要修改任何东西里面system32在首位?
Billy3
其他提示
如果是在64位的操作系统,然后调用Wow64DisableWow64FsRedirection运行32位应用程序()之前,你来的CreateFile通话将改为“C:\ Windows \ System32下”,而不是“C:\ WINDOWS \ SYSWOW64”这可能是发生了什么给你。
使用Windows XP这两个管理员/标准的帐户不需要行政权获得设备处理。
这已改变了在Vista视窗7(UAC)那里你必须具有管理员权获得设备处理。
一些方案是:
- 使用的服务
- 使用COM仰的名字
- 使用清单
注:如果你仅仅需要查询的统计数据信息从一个装置,这并不需要行政权。当使用 CreateFile()
, 指定零(0)的 dwDesiredAccess 参数。
你可能程序需要以管理员身份运行。你必须升级你的特权,即使您是管理员。当你运行程序右键单击,然后单击“以管理员身份运行”,或编辑属性,选择始终以管理员身份运行。
不隶属于 StackOverflow