Ответы с форумов MSDN

Как узнать, какой процесс использует устройство в Windows?

Date: 18.11.2019 3:40:06

Это вопрос с подвохом... Для файлов существует вполне поддерживаемый способ с помощью Restart Manager API: https://ru.stackoverflow.com/a/727180/240512 - но это именно для полноценных файлов. Устройства же в Windows, в отличие от Unix например, не являются полноценными файлами в виртуальной файловой системе. Есть конечно пути в пространстве имен Win32 Devices/NT Devices (в вашем случае второе), которые можно передать в функцию CreateFile и получить дескриптор, но этим сходство и ограничивается.

Таким образом, вопрос сводится к тому, как узнать, какой процесс открыл определенный дескриптор. Тут ответ, видимо, следует искать в использовании недокументированных функций вроде NtQuerySystemInformation (https://www.codeproject.com/Articles/18975/Listing-Used-Files)



Автор: VadimTagil

Главная страница - Список тем - Репозиторий на GitHub