如果应用程序从具有Windows管理权限的cmd打开,则会出现访问冲突

时间:2014-09-27 21:20:03

标签: c++ c windows visual-studio cmd

我使用的是简单的代码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一样。请告诉我。

1 个答案:

答案 0 :(得分:1)

  

我认为这是访问冲突的错误,这种情况正在发生   因为cmd(admin)进程不允许对其进行某些访问权限   child Test.exe

不完全。使用管理员权限运行 WinDBG ,然后问题就会消失。