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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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