通过调用GetCurrentProcess或者GetCurrentIThread可以获取线程或者进行的伪句柄,所谓伪句柄,即指向当前线程或者进程的句柄,并不是真正意义上的句柄。它并不穿件句柄,同时也不增加引用计数,因次调用CloseHandle不作任何处理。
有时候,我们需要在不同的线程或者进程之间切换,这时候就会出问题,因为我们通过上面的方法得到的是个伪句柄,必须通过调用DuplicateHanlde得到真正的句柄,这样在不同的进程和线程之间切换时才不会出错。注意:调用DuplicateHanlde之后,会增加引用计数,因此在使用完之后必须调用CloseHandle减少引用计数。