#include <ntddk.h>
VOID MyThread()//线程调用的函数
{
DbgPrint("CreateThread Successfully");
//创建线程必须用函数PsTerminateSystemThread强制线程结束。否则该线程是无法自动退出的。
PsTerminateSystemThread(STATUS_SUCCESS);
}
void DriverUnload( PDRIVER_OBJECT DriverObject)
{
}
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
HANDLE threadHandle=NULL;
NTSTATUS status;
status=PsCreateSystemThread( //创建线程
&threadHandle,
THREAD_ALL_ACCESS,
NULL,
NULL,
NULL,
MyThread,//调用的函数
NULL //PVOID StartContext 传递给函数的参数
);
if(!NT_SUCCESS(status))
return STATUS_UNSUCCESSFUL;
ZwClose(threadHandle);
DriverObject->DriverUnload = DriverUnload;
return STATUS_SUCCESS;
}
|