Qual API do Win32 pode ser usada para encontrar o processo que tem um determinado arquivo aberto?

Se eu ler ou escrever em um arquivo e receber um erro 33 ou 32, gostaria de registrar uma mensagem contendo o nome do (s) outro (s) processo (s) que possuem o arquivo aberto. Deve haver uma API do Win32 que eu possa usar para obter essas informações. O Process Explorer exibe isso. Obviamente, o Process Explorer também possui informações sobre todos os processos na memória. Eu preferiria encontrar o culpado sem interrogar todos os processos.

questionAnswers(2)

yourAnswerToTheQuestion