O bloqueio de arquivos no Windows acontece em dois níveis. Um programa pode bloquear o arquivo inteiro (API CreateFile ) ou uma região dele (API LockFileEx ). A API do Windows (Win32) não fornece uma maneira padrão para descobrir como um arquivo foi aberto. A API NtQueryObject pode fornecer algumas informações sobre como o arquivo foi aberto, mas não inclui requisitos de compartilhamento e é uma API interna que pode ser alterada a qualquer momento.
No entanto, um aplicativo pode aproximar a semântica de compartilhamento de um arquivo aberto, tentando abri-lo e verificar quando a abertura falhar devido ao acesso negado. Tal programa tentaria abrir um arquivo para (1) sem acesso, (2) acesso de leitura e (3) acesso de escrita. Um aplicativo pode verificar se há regiões do arquivo bloqueadas tentando bloquear regiões dele.
O problema com esse método é que ele pode interferir no aplicativo que está usando ativamente o arquivo em questão e pode levá-lo a falhar.