Identificadores de Arquivo
Quando um arquivo é aberto por um processo usando a função CreateFile , um identificador de arquivo é associado a ele até que o processo seja encerrado ou o identificador seja fechado usando a função CloseHandle . O identificador de arquivo é usado para identificar o arquivo em muitas chamadas de função.
Cada identificador de arquivo e objeto de arquivo geralmente é exclusivo para cada processo que abre um arquivo — as únicas exceções a isso são quando um identificador de arquivo mantido por um processo é duplicado ou quando um processo filho herda os identificadores de arquivo do processo pai. Nessas situações, esses identificadores de arquivo são exclusivos, mas veem um único objeto de arquivo compartilhado. Consulte DuplicateHandle para obter mais informações sobre como duplicar identificadores de arquivo mantidos por processos.
Observe que, embora os identificadores de arquivo normalmente sejam privados para um processo, os dados de arquivo para os quais o arquivo manipula apontam não são. Portanto, processos e threads que compartilham o mesmo arquivo devem sincronizar seu acesso. Para a maioria das operações em um arquivo, um processo identifica o arquivo por meio de seu pool privado de identificadores.