typedef struct _PROCESS_INFORMATION { HANDLE hProcess; //存放每个对象的与进程相关的句柄 HANDLE hThread; //返回的线程句柄。 DWORD dwProcessId; //用来存放进程ID号 DWORD dwThreadId; //用来存放线程ID号 } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION;
若要确保进程I D或线程I D不被重复使用,唯一的方法是保证进程或线程的内核对象不会被撤消。如果刚刚创建了一个新进程或线程,只要不关闭这些对象的句柄,就能够保证进程对象不被撤消。一旦应用程序结束使用该I D,那么调用CloseHandle 就可以释放内核对象,要记住,这时使用或依赖进程I D,对来说将不再安全。如果使用的是子进程,将无法保证父进程或父线程的有效性,除非父进程复制了它自己的进程对象或线程对象的句柄,并让子进程继承这些句柄。
转载:http://blog.csdn.net/akof1314/article/details/5471768