CM_Register_Notification Проблема блокировки PnpC++

Программы на C++. Форум разработчиков
Anonymous
CM_Register_Notification Проблема блокировки Pnp

Сообщение Anonymous »

Я зарегистрировал устройство (скажем, CDRROM) в CM_Register_Notification, но когда я получаю уведомление CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL, я блокирую устройство в новом потоке, как указано в коде ниже.

Код: Выделить всё

public static void SetpnpInsertedData(IntPtr jobAddr)
{
try
{
JOB_DATA job = (JOB_DATA)Marshal.PtrToStructure(jobAddr, typeof(JOB_DATA));//job data obatins symbolicLinkdata
string deviceinstancepath = convertSymbolicLinktoDIPath(job.deviceInstancePath);

Thread BlockThread = new Thread(() =>
{
BlockDevice(deviceinstancepath);
});
BlockThread.Start();

}
catch (Exception ex)
{
Logger.Common.ErrorFormat("Error at  SetpnpInsertedData " + ex.Message);
}
}
Когда я пытаюсь отключить устройство, я получаю следующее сообщение:

"Вам необходимо перезагрузить компьютер, прежде чем изменения, внесенные вами на это устройство, вступят в силу"

Это происходит каждый раз, но когда я отключаю устройство без использования кода в диспетчере устройств, это устройство будет отключено без каких-либо проблем. Почему это происходит? Что мне делать?

Подробнее здесь: https://stackoverflow.com/questions/787 ... ng-problem

Вернуться в «C++»