Здравствуйте, Геннадий Майко, Вы писали:
ГМ>Строго говоря, рассматривая только выгрузку драйвера, Вы, скорее всего, правы — для некоторых OS (но не для всех!) возможна ситуация, когда IRP_MN_QUERY_STOP_DEVICE не обязан предшествовать IRP_MN_QUERY_REMOVE_DEVICE.
Да, в 98/Me pnp менеджер работает по другому, IRP_MN_STOP_DEVICE используется для выключения устройства. Но и там IRP_MN_QUERY_STOP_DEVICE не обязан идти перед IRP_MN_QUERY_REMOVE_DEVICE. Не поручусь только за Висту, но на остальных нет связи между остановкой и выключением...
ГМ>(Но тогда Вам стоило указать так же и на DIF_PROPERTYCHANGE...)
.
Да и вообще на идею с коинстолером.

Девайс может оказаться в чьем-нибудь списке ремувал релейшенов. Про то, что он автоматически входит в такой список для родительского девайса я вообще молчу

И не получит коинстолер в этом случае нифига...
ГМ>Я хотел подчеркнуть, что если драйвер по каким-то причинам нельзя выгружать, то и останавливать его так же, наверное, не стоит.
В принципе согласен. Но остановка — простая, обычно кратковременная, пауза зачастую совершенно не критична. Все зависит от конкретного девайса.