阅读:1104回复:5
一个巨难的问题,那位高手知道呢??
如何,在一个驱动程序中调用一个上层的应用程序呢?
就是说如何在一个驱动程序中让一个上层的应用程序运行呢?? 我找了好久了都没有这方面的资料,那位高手知道呢?? |
|
沙发#
发布于:2004-01-07 19:38
通过共享EVENT,以前有这样的帖子,自己找找。。。。。
|
|
|
板凳#
发布于: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); |
|
地板#
发布于:2004-01-08 13:24
reayi
你说的方法中RtlInitUnicodeString(&ProcessName, L\"\\\\MyProcess\");可以使用指定路径的方式吗??例如 RtlInitUnicodeString(&ProcessName, L\"C:\\\\File\\\\MyProcess\"); 这样可以吗??? |
|
地下室#
发布于:2004-01-15 12:52
当然可以,不过要这样\\\\??\\\\C:\\\\File\\\\MyProcess,路径前要加\\??,因为内核使用路径的方式与用户层不同,关系到windows对象的命名方法
|
|
5楼#
发布于:2004-01-18 17:31
那函数rc=NtCreateProcess(&hProcessCreated,
PROCESS_ALL_ACCESS, &ObjectAttr, NtCurrentProcess(), TRUE, NULL, NULL, NULL); 中的NtCurrentProcess(),在那里定义的那??我在NativeApi中没有找到他的定义呀!!! |
|