-
-
创建的系统线程,释放参数内存时蓝屏,why?
-
发表于:
2009-10-4 11:05
4651
-
BSOD: BAD_POOL_HEADER
VOID MyThread(IN PVOID StartContext)
{
......
ExFreePool(StartContext);//蓝屏; 如果创建的线程只有一个,这里不蓝屏
PsTerminateSystemThread(STATUS_SUCCESS);
}
//与用户层DeviceIoControl通讯,创建系统线程
case IOCTL_TEST:
{
HANDLE thread;
PCWSTR Param=(PCWSTR)ExAllocatePool(PagedPool,255);
memset(Param,0,255);
wcscpy(Param,L"test");
PsCreateSystemThread(&thread,0L,NULL,NULL,NULL,MyThread,Param);
ZwClose(thread);
}
/////////////////////////////////////
但是如果在DriverEntry里创建线程,不蓝屏
for(int i=0;i<10;i++)
{
HANDLE thread;
PCWSTR Param=(PCWSTR)ExAllocatePool(PagedPool,255);
memset(Param,0,255);
wcscpy(Param,L"test");
PsCreateSystemThread(&thread,0L,NULL,NULL,NULL,MyThread,Param);
ZwClose(thread);
}
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)