Дескрипторы файлов
Когда файл открывается процессом с помощью функции createFileCreateFile, дескриптор файла связан с ним до завершения процесса или закрытия дескриптора с помощью функции CloseHandle. Дескриптор файла используется для идентификации файла во многих вызовах функций.
Каждый дескриптор файлов и объект файлов обычно уникален для каждого процесса, открывающего файл, — единственные исключения, если дескриптор файла, удерживаемый процессом, дублируется или когда дочерний процесс наследует дескриптор файла родительского процесса. В таких ситуациях эти дескрипторы файлов уникальны, но см. один общий объект файла. Дополнительные сведения о дедупликации дескрипторов файлов, удерживаемых процессами, см. в DuplicateHandle.
Обратите внимание, что в то время как дескриптор файлов обычно является закрытым для процесса, данные файла, которые обрабатываются файлом, не являются. Таким образом, процессы и потоки, которые совместно используют один и тот же файл, должны синхронизировать их доступ. Для большинства операций с файлом процесс определяет файл через его частный пул дескрипторов.