Порядок загрузки в общем случае определяется параметром start в соответствующем ключе ветки "CurrentControlSet/Services" реестра. А как можно определить, в каком порядке будут запущены драйвера, если параметр start одинаков для нескольких драйверов, например 0х3
Это не то чтобы порядок загрузки. Этот параметр очень общо определяет лишь в какой фазе загрузки системы нужно грузить драйвер. Точный порядок загрузки драйверов определить невозможно. А влиять на него можно с помощью помещения драйвера в определенную группу Load Order Group. В пределах группы порядок задается с помощью числового тега Tag. Также можно сделать загрузку драйвера зависимой от загрузки других груп Depend On Group и/или драйверов Depend On Service. Всё это есть в доках. См. описание CreateService и вокруг. На sysinternals.com где-то лежить утиль LoadOrder (или как-то так). Показывает порядок загрузки, но не точно.
Спасибо, сейчас пойду смотреть этот LoadOrder. Тут собственно проблема такая: запускаю два драйвера, и мне нужно, чтобы они стартовали рпи загрузке системы как можно раньше, и в определенной последовательности (т.е. первый должен сделать подготовительные шаги для второго, пока тот ещё не стартовал)
cresta PsSetLoadImageNotifyRoutine ставит нотифай, до ХР насколько я помню ее убрать невозвожно(легально ) в ХР уже есть PsRemoveLoadImageNotifyRoutine для снятия. Saint German А как сменить порядок ? Она ж выдает калбек когда модуль уже загружаеться ...
да это мой четров стиль выражатьсянадо так - установления(определения) т.е. видя что загружается driver1.sys & driver2.sys примерно определяем.
cresta, если нужно чтобы драйвер стартовал при загрузке системы как можно раньше, то его нужно поместить в группу "Boot Bus Extender". При этом он должен быть зарегистрирован как SERVICE_BOOT_START или SERVICE_SYSTEM_START. Тэг можно любой назначить, т.к. для тебя скорее всего всё равно каким номером твой драйвер будет грузится в пределах группы. Только имей ввиду, что в буттайме есть ряд ограничений, т.к. файловая система ещё не смонтирована, доступны не все разделы реестра и т.п. А насчет двух драйверов: не проще ли переложить обязанности первого на второй или наоборот См. в ДДК "Specifying Driver Load Order".
Four-F Мне так кажется для целей его драйвера, это плохо подходит, это сильно усложнит логику работы его драйвера.