记得《Windows核心编程》中说过,一个进程的句柄直接给另一个进程使用很有可能会出错,因为句柄就是个索引值嘛,可能在另一个进程中这个索引值就指向它打开的其它内核对象了。

悲催的没仔细研究,想当然的认为句柄值应该是从小到大,根据打开内核对象的次序依次分配的。尤其是在父进程创建子进程的过程中,父进程可继承的句柄值应该先挑出来,然后在子进程中依次重新分配。结果不然。假设父进程有512个句柄值,只有第512个句柄值可继承,那么子进程中该句柄值还是512*4(之前我想当然的以为是子进程初始句柄值+4,即能分配的最小的句柄值)!也就是说从父进程中继承来的句柄,其索引值在子进程中是不会变的!