Что значит «предыдущий экземпляр в памяти»
Драйвер — не программа, которую закрывают крестиком. Windows загружает его в память ядра, когда появляется устройство, и выгружает, когда устройство отключили и драйвер больше никому не нужен. Чтобы понять, нужен ли он ещё, система ведёт счётчик ссылок: сколько устройств и компонентов им пользуются. Когда счётчик доходит до нуля, драйвер выгружается. Если счётчик сбился или выгрузка ещё не закончилась, а устройство уже подключили снова, Windows видит в памяти старую копию и новую не загружает. Это и есть код 38.
Отсюда типичные моменты появления ошибки. Устройство выдернули и тут же вставили обратно. Компьютер вышел из сна или гибернации, и драйвер не пережил смену режима питания. Программа обновила свой драйвер, не дождавшись, пока выгрузится старая версия. Во всех этих случаях файл драйвера исправен, а сбой — вопрос очерёдности.
Третья причина из документации тоньше: одна и та же служба драйвера объявлена сразу в нескольких установочных пакетах. Так бывает, когда на компьютере стоят две версии фирменной программы, пакет производителя рядом с драйвером из центра обновления или остатки старого пакета после обновления. В такой ситуации перезагрузка помогает ненадолго, и код возвращается.
