2 xiaotoly xiaotoly 于 2014.09.26 00:51 提问

OpenProcess失败 GetLastError()返回1300

一个代理软件想要获取一个服务,在该服务调起来时获取以存在的进程句柄失败:
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

1.我在WIN7下面运行代理软件,服务的进程能被调起,运行能成功,没有错误;
2.在XP系统下运行代理软件,服务进程返回错误,查看出错的代码位置为:OpenProcess()返回NULL;通过GetLastError()返回1300:并非所有被引用的特权或组都分配给呼叫方。
在XP环境下我是以管理员账户登录的,然后运行软件。

个人认为XP的权限哪里有问题,但又找不到具体原因,希望大家给一些建议。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
OpenProcess调用失败,GetLastError返回5
转自https://social.msdn.microsoft.com/Forums/zh-CN/20e3fc99-1d21-43b5-9bc2-03a52a721dc5/openprocess 现象:服务方式程序时,程序的创建者为SYSTEM用户;非SYSTEM用户调用OpenProcess访问该服务程序时,调用失败,GetLastError返回5,可以通过调用如下 EnableDebugP
openProcess时拒绝访问(GetlastError为5),返回的HANDLE为NULL的解决方法
遇到的问题:在winXP的VS2010里调试好的程序,直接双击exe文件能运行,但是什么都没执行,就是没有按我程序中写的去执行。 找出问题的方法:由于是执行exe文件出的错误,因此用普通的打印语句(printf,cout等)是没用的,我在程序 中每个几行加一个messageBox或者向一个文件写内容来判断程序执行到哪儿出现了问题。 具体介绍:最近在写一个进程监控管理的程序,都已经写好了,并且在
openprocess失败,errorcode为5,提权代码
void EnableDebugPriv() { HANDLE hToken; LUID sedebugnameValue; TOKEN_PRIVILEGES tkp; if ( ! OpenProcessToken( GetCurrentProcess(),TOKEN_ALL_ACCESS, &hToken ) ) { cout<<"提权失败。"<<endl; re
OpenProcess 返回拒绝访问的错误提示
有时需要使用OpenProcess来查看进程的相关信息,或者结束进程的运行,但是会碰到“拒绝访问”的错误,这时需要提升进程的权限为Debug权限。 BOOL EnableDebugPrivilege() {   HANDLE hToken;   BOOL fOk=FALSE;   if(OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_P
关于使用OpenProcess的一个错误
关于OpenProcess的认识 在获取进程的句柄时候使用的是根据进程id来获取句柄的方式,自然使用了OpenProcess这个函数,查MSDN: HANDLE WINAPI OpenProcess(In DWORD dwDesiredAccess,In BOOL bInheritHandle,In DWORD dwProcessId );首先函数返回的是个HANDLE,其中第一个参数是需要的权限
OpenProcess使用PROCESS_ALL_ACCESS返回ERROR_ACCESS_DENIED
原文地址 http://social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/eeb93be6-872c-4028-b0ae-cd873e089825   Rajeesh... _ Rajeesh... _ Ness technologies 280 Points500 Recent Achie
GetLastError错误码大全
GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置。函数   并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值,也不能   担保函数已成功执行。只有在函数调用返回一个错误结果时,这个函数指出的错误结果   才是有效的。通常,只有在函数返回一个错误结果,而且已知函数
【总结】用户权限设置和进程权限提升
使用某些Windows API的时候需要提升进程的默认权限,例如RegRestoreKey需要SE_RESTORE_NAME 和SE_BACKUP_NAME 权限。在这种情况下,我们需要使用到一组Windows API提升进程权限。需要的函数有: 1.OpenProcessToken 2.LookupPrivilegeValue 3.AdjustTokenPrivileges 使用
MFC方法OpenProcess打开一个已存在的进程对象,并返回进程的句柄
方法名称:OpenProcess 位置:Kernel32.dll OpenProcess 函数用来打开一个已存在的进程对象,并返回进程的句柄。 1.函数原型 HANDLE OpenProcess( DWORD dwDesiredAccess, //渴望得到的访问权限(标志) BOOL bInheritHandle, // 是否继承句柄 DWORD dwPr
CreateFile GetLastError一直返回2啥情况
网上弄来一个纯真IP数据库,想从中读取一些IP信息。   但是编程的时候打不开这个文件。GetLastError返回2,请问这是为什么   HANDLEhFile=CreateFile("QQWry.Dat",GENERIC_READ,   FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);hFile是-1,当前目录下也有这个文件。(Console程序,V