已经拦截了CreateProcess函数,怎么取得名字和命令行等信息

已经拦截了CreateProcess函数,如何取得名字和命令行等信息?
已经成功拦截了函数,但想取得lpApplicationName,lpCommandLine等信息,想不明白。
请大家讲解下,能有代码示范更好,感谢!

------解决方案--------------------
1.动态加载的DLL用什么办法可以挂钩API ?
2.并把这个函数的地址写进导入表就可以得到传入此地址的实参,这个要怎么写,有代码参考吗?

关于1,我不确定下面这个函数是否可以取得本进程动态加载的模块句柄,
如果可以的话,那修改本进程内那个动态加载进来的DLL的导入表中的地址内容是可行的。

// 取得本进程的模块列表
HANDLE hSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, ::GetCurrentProcessId());

关于2,以下这段话中pfnNew就是你用来替换原函数的挂钩函数。
// 修改内存地址 相当于“*lpAddr = (DWORD)pfnNew;”
::WriteProcessMemory(::GetCurrentProcess(), 
lpAddr, &pfnNew, sizeof(DWORD), NULL);
pfnNew的实现部分会有与原函数相同的调用约定与形参格式。
所以被挂钩的原函数参数,你直接到这个pfnNew实现找就可以了。