最新消息:本站技术交流 QQ 群:28124927

发现 PsCreateSystemThread 函数的一点小问题

Rootkit/驱动底层 exchen 4479浏览 0评论

今天在写创建线程的驱动程序时,发现了PsCreateSystemThread函数的一点小问题

这个函数是用于创建线程的,该函数的原型如下:

NTSTATUS 
PsCreateSystemThread(
OUT PHANDLE  ThreadHandle,
IN ULONG  DesiredAccess,
IN POBJECT_ATTRIBUTES  ObjectAttributes  OPTIONAL,
IN HANDLE  ProcessHandle  OPTIONAL,
OUT PCLIENT_ID  ClientId  OPTIONAL,
IN PKSTART_ROUTINE  StartRoutine,
IN PVOID  StartContext
);

这个函数里有7个参数,但是我发现我写成了8个参数,在编译的时候,也没有报错,如下:

PsCreateSystemThread(&hMyThread,
0,
NULL,
NULL,
NULL,
NULL,
MyThreadProc,
NULL);

虽然编译的时候,没有报错,但是加载驱动之后,并没有创建成功,这很容易让人误解,明明一个简单
的创建线程的程序,为什么不成功,后来我仔细看了一下参数,才发现这个问题,看来以后写程序,要
多多注意参数的个数。。

转载请注明:exchen's blog » 发现 PsCreateSystemThread 函数的一点小问题

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址