zgc7622
驱动小牛
驱动小牛
  • 注册日期2003-02-24
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分136分
  • 威望15点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
阅读:1104回复:5

一个巨难的问题,那位高手知道呢??

楼主#
更多 发布于:2004-01-07 16:55
如何,在一个驱动程序中调用一个上层的应用程序呢?
就是说如何在一个驱动程序中让一个上层的应用程序运行呢??
我找了好久了都没有这方面的资料,那位高手知道呢??
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-01-07 19:38
通过共享EVENT,以前有这样的帖子,自己找找。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
reayi
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2010-03-30
  • 粉丝0
  • 关注0
  • 积分83分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-07 21:52
NTSTATUS rc;
HANDLE hProcessCreated, hProcessOpened;
OBJECT_ATTRIBUTES ObjectAttr;
UNICODE_STRING ProcessName;

RtlInitUnicodeString(&ProcessName, L\"\\\\MyProcess\");
InitializeObjectAttributes(&ObjectAttr,
&ProcessName,
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
rc=NtCreateProcess(&hProcessCreated,
PROCESS_ALL_ACCESS,
&ObjectAttr,
NtCurrentProcess(),
TRUE,
NULL,
NULL,
NULL);

if (rc!=STATUS_SUCCESS) {
DbgPrint(\"Unable to create process, rc=%x\\n\", rc);
return 0;
}
DbgPrint(\"hProcessCreated=%x\\n\", hProcessCreated);

rc=NtOpenProcess(&hProcessOpened,
PROCESS_ALL_ACCESS,
&ObjectAttr,
NULL);

if (rc!=STATUS_SUCCESS) {
DbgPrint(\"Unable to open process, rc=%x\\n\", rc);
NtClose(hProcessCreated);
return 0;
}
DbgPrint(\"hProcessOpened=%x\\n\", hProcessOpened);

NtClose(hProcessOpened);
NtClose(hProcessCreated);
zgc7622
驱动小牛
驱动小牛
  • 注册日期2003-02-24
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分136分
  • 威望15点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-08 13:24
reayi
你说的方法中RtlInitUnicodeString(&ProcessName, L\"\\\\MyProcess\");可以使用指定路径的方式吗??例如
RtlInitUnicodeString(&ProcessName, L\"C:\\\\File\\\\MyProcess\");
这样可以吗???
reayi
驱动牛犊
驱动牛犊
  • 注册日期2002-11-06
  • 最后登录2010-03-30
  • 粉丝0
  • 关注0
  • 积分83分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-01-15 12:52
当然可以,不过要这样\\\\??\\\\C:\\\\File\\\\MyProcess,路径前要加\\??,因为内核使用路径的方式与用户层不同,关系到windows对象的命名方法
zgc7622
驱动小牛
驱动小牛
  • 注册日期2003-02-24
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分136分
  • 威望15点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-01-18 17:31
那函数rc=NtCreateProcess(&hProcessCreated,
PROCESS_ALL_ACCESS,
&ObjectAttr,
NtCurrentProcess(),
TRUE,
NULL,
NULL,
NULL);

中的NtCurrentProcess(),在那里定义的那??我在NativeApi中没有找到他的定义呀!!!
游客

返回顶部