我使用的是简单的代码Test.c -
#include<stdio.h>
int main()
{
printf("hello\n");
while(1);
}
我正在通过cl.exe编译器编译此代码并生成Test.exe。现在我有两种方法可以打开Test.exe。首先是简单的双击并打开它。在这种情况下,如果我正在检查Windbg(文件 - &gt;附加到进程),它会显示
Session: 1 User: .......
现在,如果我从具有管理权限的cmd打开Test.exe并再次检查Windbg,则显示
Error 0xD0000022
我认为这是一个访问冲突错误,这种情况正在发生,因为cmd(admin)进程不允许对其子Test.exe拥有一些访问权限,而且我不知道这些访问权限是什么。
是否有任何api允许访问并删除此错误。我试过这些api但没有发生任何事情 -
GetCurrentProcess(); //to get the pseudo handle of current process
SetSecurityInfo(ph,SE_SERVICE,BACKUP_SECURITY_INFORMATION,NULL,NULL,NULL,NULL);
我还以两种方式打开了safari浏览器,同样的结果就像Test.exe一样。请告诉我。
答案 0 :(得分:1)
我认为这是访问冲突的错误,这种情况正在发生 因为cmd(admin)进程不允许对其进行某些访问权限 child Test.exe
不完全。使用管理员权限运行 WinDBG ,然后问题就会消失。