关于PsSetCreateProcessNotifyRoutine函数疑问,
问题是: 在看简单驱动程序遇到的。
PsSetCreateProcessNotifyRoutine 这个函数 有两个参数 参数1:进程回调函数, 参数2:bool值,意思是
是否创建进程?
书上是 将 这个进程回调函数定义为:
void ProcessCallback(HANDLE hParentId, HANDLE hProcessId,BOOL bCreate)
{
.............
//gpDevExt 是一个全局的 设备扩展结构的指针
gpDevExt->hParentId=hParentId; //父进程的id ,当用户模式的程序请求irp查询时候,就会发送出去
gpDevExt->hProcessId=hProcessId; //发生事件的进程的id
gpDevExt->bCreate=Create;
...............
KeSetEvent(gpDevExt->ProcessEvent,0,FALSE); //使事件对象受信
KeSetEvent(gpDevExt->ProcessEvent);
}
很显然,回调函数有三个参数,而PsSetCreateProcessNotifyRoutine 只有两个参数, 另外:回调函数里面用到了其他两个参数,比如:hParentId,hProcessId 。hParentId,hProcessId 是谁传递给 回调函数的??
PsSetCreateProcessNotifyRoutine 只有Create 这个参数啊?