ответ

4

Вам необходимо будет использовать SetupApi/ConfigManager API. Но имейте в виду, что в x64 вам приложено приложение. должен быть также x64 для включения/выключения устройства (поэтому вы не можете сделать это прямо в Delphi прямо сейчас - сначала я подумал, что это проблема с перенастройкой файлов и реестра для x86-приложения под x64, но это не помогло). Перечисление устройств отлично работает. В одной статье о MSDN было что-то в этом роде, но я не могу найти ее прямо сейчас. Я сделал приложение FP/Lazarus x64 для включения/выключения устройств под ОС x64.

Вы можете скачать WDK и найти исходный код DevCon (C: \ WinDDK \ 7600.16385.1 \ src \ setup \ devcon). В cmds.cpp есть функция ControlCallback, которая включает/отключает устройство с помощью SetupApi). Но сначала вам нужно перечислить классы устройств (по GUID или ClassName), а затем перечислить экземпляры устройств или открыть устройство по строке DeviceInstanceId. Это в C, но должно быть легко узнать, как использовать этот API.

Не знаете, что вы делаете, но, возможно, было бы проще использовать этот devcon.exe (не знаю, разрешает ли ему лицензия) и включить или отключить его?

+1

Переводы заголовков упомянутых SetupApi и ConfigManager доступны в Jedi Apilib – Remko

+0

Спасибо Remko, забыли написать об этом. Об этом x86 против x64, если вы попытаетесь это сделать, вы, вероятно, закончите с ошибкой E0000235 (например, http://www.techtalkz.com/microsoft-device-drivers/292837-problem-porting-32-bit-application- x64.html) – kibab

0

у меня нет опыт работы с ним, но я думаю, вы можете использовать API DeviceIoControl.

+0

спасибо за все комментарии :) – Plastkort

Смежные вопросы