Re[4]: Отмена UnloadRoutine
От: Геннадий Майко США  
Дата: 08.09.06 11:16
Оценка:
Здравствуйте, straightener,

O>>>>Как отменить выгрузку драйвера в UnloadRoutine? Или это делается не в UnloadRoutine?


ГМ>>>Unload не может быть вызвана без посылки драйверу сообщений IRP_MN_QUERY_STOP_DEVICE и IRP_MN_QUERY_REMOVE_DEVICE. Обрабатывайте их корректно — и Ваш драйвер не будет остановлен или выгружен.


З>>[skip]


З>>Все очень даже верно для PNP драйверов.

S>Не очень. IRP_MN_QUERY_STOP_DEVICE не обязан предшествовать IRP_MN_QUERY_REMOVE_DEVICE, мало того, девайс останавливается только для ребаланса ресурсов, а выключается он сразу, без перехода через состояние "stopped". Следует исключить IRP_MN_QUERY_STOP_DEVICE из вышепреведенного утверждения...
--
Строго говоря, рассматривая только выгрузку драйвера, Вы, скорее всего, правы — для некоторых OS (но не для всех!) возможна ситуация, когда IRP_MN_QUERY_STOP_DEVICE не обязан предшествовать IRP_MN_QUERY_REMOVE_DEVICE.
(Но тогда Вам стоило указать так же и на DIF_PROPERTYCHANGE...) .

Я хотел подчеркнуть, что если драйвер по каким-то причинам нельзя выгружать, то и останавливать его так же, наверное, не стоит.

C уважением,
Геннадий Майко.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.