Здравствуйте, straightener, Вы писали:
S>Здравствуйте, Злость, Вы писали:
З>>[skip]
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 из вышепреведенного утверждения...
А там и нет четких фраз что они должны быть последовательными. Сказанно что обрабатывайте обе (правильно)

и все будет хорошо.
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.