Смотрите здесь, на MSDN, что он говорит об использовании ' DuplicateHandle '. Лучший способ, которым я могу думать об этом, - это, если хотите, аналогия - предположим, что вы открываете файл, используя подпрограмму CreateHandle только для записи, затем вызываете DuplicateHandle, чтобы передать дескриптор в другой поток, в котором поток будет читать из файл, дублируется только дескриптор, поэтому поток не должен снова вызывать CreateHandle ...
Надеюсь, это поможет,
С наилучшими пожеланиями,
Том.