Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Направления программирования
>
Drivers
(Модераторы:
Ochkarik
,
aks68
) > Тема:
Принудительный Dereference
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Принудительный Dereference (Прочитано 6788 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vvoid
Гость
Принудительный Dereference
«
:
08-11-2005 14:46 »
Добрый день!
Сначала лирическое отступление. К примеру, если я всталю флешку, открою её в полупроводнике и потом попытаюсь её отформатировать из коммандной строки, то будет сказано, что просто так формат не может отработать, поскольку диск используется другим процессом и предложится объявить все ссылки на этот диск недействительными. По моему фактически выполняется сброс ссылок на объект, полученных другими процессами при вызове ObReferenceObjectXxx.
Так вот, собственно и вопрос: как я могу удалить объект, на который ещё кто-то ссылается. Причём именно удалить - по IoDeleteDevice. Обращу ваше внимание, на то, что эта функция отрабатывает, но устройство в списке DeviceObject->NextDevice остаётся, а мне нужно сделать, так, чтобы оно уже нигде не оставалось, т.е. сделать "принудительный ObDereferenceObject".
Подскажите, если кто-нибудь знает как это делается.
Заранее спасибо.
Записан
Ochkarik
Модератор
Offline
Пол:
Re: Принудительный Dereference
«
Ответ #1 :
08-11-2005 16:50 »
делай ObDereferenceObject пока число ссылок до 0 не упадет, потом удаляй... только вот остальные проги могут и свалится от всего этого...)
ибо.... ObDereferenceObject decrements the given object's reference count and performs retention checks.
но вообще это жестоко наверное... может IRP_PNP_QUERY_REMOVE_DEVICE? или SUPRISE_REMOVAL?
«
Последнее редактирование: 20-12-2007 19:10 от Алексей1153++
»
Записан
RTFM
уже хоть раз наконец!
:[ ну или хотя бы
STFW
...
vvoid
Гость
Re: Принудительный Dereference
«
Ответ #2 :
08-11-2005 17:03 »
Да тут дело в том, что это как бы референсы на девайс моего драйвера (вирт. шифров. диск) Вот так. И что делать в указанных IOCTL-ях я не знаю. ну разумеется так, чтобы более-менее честно
Записан
Ochkarik
Модератор
Offline
Пол:
Re: Принудительный Dereference
«
Ответ #3 :
08-11-2005 17:50 »
если быть совсем честным я тожене уверен что веду ся в этих случаях правильно... но по супрайсу - драйвер палюбому из системы должны выкинуть) так что бы ни делай....)))
вообще говоря как-то в рыбах нумеги смотрел...- там более менее все понятно... тока вот IRP типа QUERY - обманываю всех и ресурсы там не выгружаю)
только ответ даю - могу выгрузится или нет...
вообще наверное это через сервисы надо делать наверное...
Записан
RTFM
уже хоть раз наконец!
:[ ну или хотя бы
STFW
...
vvoid
Гость
Re: Принудительный Dereference
«
Ответ #4 :
10-11-2005 17:52 »
А можно поподробнее что такое SUPRISE_REMOVAL? А то я в DDK набрал, а оно мне ничего не выдало
И что значит "вообще наверное это через сервисы надо делать наверное..."?
Записан
Ochkarik
Модератор
Offline
Пол:
Re: Принудительный Dereference
«
Ответ #5 :
11-11-2005 11:09 »
SUPRISE_REMOVAL - я имел в виду IRP_MJ_PNP - IRP_MN_SURPRISE_REMOVAL) написал с ошибкой...
а про сервисы... иде то тут тема была по поводу предустановки драйвера - помоему там обсуждалось что то похожее но про установку...
функции типа SetupDi*** - если есть функции установки драйвера, то наверное есить и выгрузки его же?
еще посмотри в MSDN Platform SDK: Hardware раздел Device Management...и Platform SDK:BaseService: Removable Storage Manager... помоему именно там компать надо)
Записан
RTFM
уже хоть раз наконец!
:[ ну или хотя бы
STFW
...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Направления программирования
>
Drivers
(Модераторы:
Ochkarik
,
aks68
) > Тема:
Принудительный Dereference
Загружается...