Здравствуйте, argent, Вы писали:
пожалуйста следите за объемом цитирования — модератор
A>сейчас попробую... хотя сдается мне что PnP здесь совсем ни при чем, мы же просто создаем символическую ссылку, и связываем ее с устройством...
Некоторые выдержки из документации про этот вызов, на которые хотел бы обратить внимание:
Do not use this routine to report system PnP events, such as GUID_TARGET_DEVICE_REMOVE_COMPLETE.
Это значит, что нельзя использовать системные события, т.е. драйвер должен уведомлять только о конкретных событиях своего девайса.
Custom notification can be used for events like a volume label change.
Ну, уж если этот вызов используется, чтобы уведомить систему о смене метки тома (volume label), то уж для уведомления о создании/удалении тома тоже подойдёт. Я думаю, сначала нужно удалить символьную ссылку, затем уведомить систему о том, что том уничтожен.
IoReportTargetDeviceChange is not supported on Windows 98/Me; it returns STATUS_NOT_IMPLEMENTED.
Не поддерживается для Windows 9x.
To report a target device change from raised IRQL, call IoReportTargetDeviceChangeAsynchronous.
На повышенном IRQ уровне использовать
NTSTATUS
IoReportTargetDeviceChangeAsynchronous(
IN PDEVICE_OBJECT PhysicalDeviceObject,
IN PVOID NotificationStructure,
IN PDEVICE_CHANGE_COMPLETE_CALLBACK Callback OPTIONAL,
IN PVOID Context OPTIONAL
);
Да, и в качестве евента там надо сгенерить свой гуид.