【发布时间】:2012-11-09 12:21:28
【问题描述】:
我的应用程序正在作业中运行。我想使用OpenJobObject 获得这个 Jobobject 的句柄,这样我以后可以使用这个句柄。问题是,我不知道作业名称,并且通过将 NULL 传递给作业名称,它会返回错误 87(参数不正确)。
我是这样尝试的:
HANDLE handle = OpenJobObject( JOB_OBJECT_QUERY, FALSE, NULL );
if ( !handle ) printf( "\nError %d", GetLastError() );
else printf( "\nOK" );
我还在 MSDN 上找到了这个: 应用程序无法获得正在运行的作业对象的句柄,除非它具有作业对象的名称。但是,应用程序可以使用 NULL 调用 QueryInformationJobObject 函数来获取有关作业对象的信息。
所以我的问题是,是否有可能以某种方式获得运行我的应用程序的 JobObject 的句柄?或者获取运行我的应用程序的作业的名称?
谢谢!
更新:
到目前为止我的代码:http://pastebin.com/aJ7XMmci
现在,我收到来自SetInformation 的错误 87(参数不正确):(
【问题讨论】:
-
不幸的是,runas 似乎没有使用命名的作业对象,因此 OpenJobObject 在您的特定情况下不会有帮助。