kx Driver, Creative Driver - переключение одним щелчком


Данный метод хоть и выглядит "страшно", но в реале подразумевает всего несколько минут "гемороя" (максимум - полчаса), после чего наступает "счастливая, безмятежная жизнь" :) 
Также, если четко следовать инструкциям, то ничего плохого с системой сделать не получится...

Он подходит для всех звуковых карт на базе Live!, Audigy, Audigy2 , проще говоря для всех карт производства Creative, на которые можно установить kx-драйвер.

Метод тестировался под операционными системами Win98SE и WinXP. Т.к. есть небольшая разница в реализации метода под этими операционными системами, то все дальнейшее есть описание действий под WinXP, а корректировка действий с учетом Win98 будет указана ниже.


Итак...

Этап 1. Создаем reg-файл для kx-драйвера.

kx-драйвер уже должен быть установлен и нормально функционировать. (в принципе, нет особой разницы, какой именно драйвер стоит - kx или creative, последовательность действий одинакова, но для простоты объяснения буду исходить из того, что установлен именно kx)
Также, вы должны иметь права Администратора.
Желательно, для этого действа создать отдельную папку, где-нибудь в легко доступном месте, туда будут сохраняться reg-файлы.


Шаг 1. Находим раздел в реестре, сопоставленный с нашей звуковой картой и устанавливаем права доступа к нему.

Запускаем regedit (Пуск->Выполнить->regedit). 

Подготовка...

Для начала нужно выяснить, какой "ControlSet" является активным. Для этого, используя regedit, как в обычном "Проводнике" находим раздел реестра [HKEY_LOCAL_MACHINE\SYSTEM\Select] и смотрим значение параметра "Current" (например "0x00000001 (1)"). 
Это значение и является номером текущего активного ControlSet'а. В моем случае, на момент написания данного мануала, там стояла единица (и соответственно, ControlSet001 у меня является активным), потому, для простоты восприятия, описание дальнейшего процесса я буду вести, исходя из этого факта. 
Если же у вас там не единица, а какое-либо другое число, то просто в моем описании мысленно (ну и конечно физически когда нужно :)) заменяйте все "ControlSet001" на "ControlSet00X" (где X - это номер вашего текущего ControlSet'а из параметра "Current").

 

Поехали...


Используя regedit, как в обычном "Проводнике" находим раздел реестра [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI]. В нем расположены подразделы, содержащие информацию об устройствах, подключенных к PCI-шине.

*************************
Разделы носят характерные названия, вида VEN_xxxx&DEV_yyyy&SUBSYS_yyyyxxxx, где VEN(Vendor ID) - это идентификационный номер производителя устройства, а DEV(Device ID) - номер самого устройства. 
Т.к. в данном случае, речь идет о звуковых картах производства Creative, то VEN у всех будет равен 1102, а DEV будет зависеть от модели карты.
*************************

Находим среди них раздел, соответствующий нашей звуковой карте.

*************************
Сделать это не сложно, даже не зная VEN и DEV карты, просто методом перебора :)
В каждом из этих разделов находится подраздел с именем типа "3&61aaa01&0&70", собственно и содержащий всю инфу об устройстве. В нем есть параметр "DeviceDesc", содержащий "публичное" имя уст-ва, напр. "kX 10k2 Audio - Model SB0244".
*************************

По-умолчанию, в XP запрещено даже Администратору что-либо изменять в этом разделе, а нам это необходимо, потому создаем себе такое право :)
Щелкаем по разделу правой кнопкой мыши, в появившемся меню выбираем "Разрешения...".
Как видно, правами нас действительно обделили, исправляем - либо разрешаем "Всем" "Полный доступ", либо добавляем себя-любимого и только персонально себе (т.е. только Вы сможете "переключать" драйвера).



Шаг 2. Копируем данные из этого раздела в reg-файл.

Так, раздел в реестре, соопоставленный с нашей зв. картой, мы нашли. 

В нем содержится единственный подраздел с именем типа "3&61aaa01&0&70", вот его то и нужно скопировать в reg-файл. Щелчек правой кнопкой мыши по нему и "Экспортировать". Чтобы в последствии ничего не менять, называем файл "kx_startup.reg".


Шаг 3. Находим раздел в реестре, сопоставленный с драйвером, и создаем его копию.

Выделяем тот раздел, что мы скопировали в reg-файл (это который с именем типа "3&61aaa01&0&70" :)). В нем должен быть параметр "Driver", определяющий раздел реестра, с информацией о драйвере к нашей зв. карте. 
У меня там написано "{4D36E96C-E325-11CE-BFC1-08002BE10318}\0005" и дальше буду описывать на этом примере.

Значит так, сначала находим следующий раздел
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class]
и уже в нем ищем то, что у нас написано в параметре "Driver", т.е. сначала находим раздел "{4D36E96C-E325-11CE-BFC1-08002BE10318}"(в нем находится инфа о драйверах всех мультимедийных устройств), а в нем "0005" - это и есть, образно говоря, наш kx-драйвер.

Теперь нужно создать его копию: смотрим не занятое числовое имя раздела, в моем случае это "0029"... Чтобы избежать большой ручной работы, экспортируем раздел "0005" во временный reg-файл, затем щелкаем по файлу правой кнопкой мыши, выбираем "Изменить", и все "0005" меняем на "0029"(ну или какое там у вас не занято :)). Дальше "сохранить", и двойным щелчком по файлу добавляем информацию в реестр. 
В итоге в разделе "{4D36E96C-E325-11CE-BFC1-08002BE10318}" должен появиться новый "0029", являющийся точной копией "0005".

 


Шаг 4. Редактируем файл "kx_startup.reg".

*************************
Роль этого файла будет следующая - удалить информацию из реестра о creative-драйвере, и добавить инфу о kx.
*************************

Щелкаем правой кнопкой мыши по файлу, выбираем "Изменить" и видим много чего непонятного :).
В начале стоит строка с названием раздела, который мы копировали в Шаге 2.
Копируем эту строку в буфер обмена, вставляем содержимое буфера перед ней, и в полученной копии сразу за первой квадратной скобкой ставим знак минус.

Должно получиться что-то подобное:


Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\VEN_1102&DEV_0004&SUBSYS_10071102&REV_04\3&61aaa01&0&70]

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\VEN_1102&DEV_0004&SUBSYS_10071102&REV_04\3&61aaa01&0&70]
...



Дальше, находим сохраненный параметр "Driver" и меняем "0005" на "0029" (ну или на то, что у вас получилось в Шаге 3). Сохраняем.

 



Этап 2. Создаем reg-файл для creative-драйвера.

Для начала нужно удалить kx-драйвер. Сделать это необходимо исключительно через regedit, удалив раздел реестра, скопированный на Этапе 1, Шаг 2 (3&61aaa01&0&70) и перезагрузить компьютер.

Дальше провести обычную установку Creative-драйвера (через компакт диск) 
Но сначала обратите внимание на это.

И проделать те же процедуры, что и на Этапе 1, с небольшими отличиями:

Шаг 1. Раздел мы нашли, права установили. Пропускаем его.

Шаг 2. Все то же самое, что и на Этапе 1, только файл называем "creat_startup.reg".

Шаг 3. Здесь никаких действий проводить не нужно. После установки creative-драйвера, информация о нем записалась в "0005", а в "0029" мы сохранили информацию о kx.

Шаг 4. Редактируем файл "creat_startup.reg".

*************************
Роль этого файла будет следующая - удалить информацию из реестра о kx-драйвере, и добавить инфу о creative.
*************************
Проделываем ту же операцию, что и на Этапе 1.
Параметр "Driver" не трогаем.


Шаг 5. Финальное редактирование файлов "kx_startup.reg" и "creat_startup.reg".

Все, что нужно для смены драйверов мы настроили, но ведь с каждым драйвером грузятся еще и системные программки/утилитки. Потому мы должны сделать так, чтобы с определенным драйвером грузились только нужные утилиты.

Открываем на изменение оба файла "kx_startup.reg" и "creat_startup.reg". 

В конец файла "kx_startup.reg", добавляем следующие строки:


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"kX Mixer"="kxmixer --startup"
"CTHelper"=-
"CTSysVol"=-
"SBDrvDet"=-



В конец файла "creat_startup.reg", добавляем следующие строки:


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"kX Mixer"=-
"CTHelper"="CTHELPER.EXE"
"CTSysVol"="C:\\Program Files\\Creative\\SBAudigy2\\Surround Mixer\\CTSysVol.exe"
"SBDrvDet"="C:\\Program Files\\Creative\\SB Drive Det\\SBDrvDet.exe /r"



****************************
Важно!!!
С kx проблем нет, во всех случаях грузится только "kxmixer".

А вот с Creative'ом есть одна сложность - абсолютно не факт, что во всех версиях creative-драйверов и для всех карт, грузятся одни и те же программы, также их список зависит еще и от выбранных компонентов при установке.

Потому лучше, до и после установки Creative-драйвера сохранить куда-нибудь(в два разных файла) раздел реестра
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] (он отвечает за то, какие программы будут автоматически грузиться вместе с системой)
И сравнить. Те параметры, что добавились и нужно писать в конец файлов "creat_startup.reg" и "kx_startup.reg".

Правило такое: 
в файл "creat_startup.reg" параметр пишем без изменения, напр.
"SBDrvDet"="C:\\Program Files\\Creative\\SB Drive Det\\SBDrvDet.exe /r",
а в файле "kx_startup.reg" в этом же параметре после "=" ставим минус, напр.
"SBDrvDet"=-

Т.е. в примере, приведенном в Шаге 5, "kX Mixer" не трогаем, а все что ниже заменяем на свое.
******************************

 



Этап 3. Создаем BAT-файл и ярлыки выбора драйвера.


Шаг 1. В папке, где у нас лежат файлы "creat_startup.reg" и "kx_startup.reg" создаем новый файл и называем его, к примеру, "choose_drv.bat". 
Щелкаем по нему правой кнопкой мыши и выбираем "Изменить". Копируем туда следующий код:


@echo off

if '%1'=='kx' goto kx
if '%1'=='creative' goto creative
goto error

:kx
echo kx-driver starting...
regedit /s kx_startup.reg
goto reboot


:creative
echo creative-driver starting...
regedit /s creat_startup.reg
goto reboot


:error
echo You must specify driver name
goto end


:reboot
shutdown -r -t 00
:end


********************
Этот код верен, если вы последовали совету выше и назвали файлы именно "creat_startup.reg" и "kx_startup.reg". Иначе, либо переименовывайте файлы, либо исправляйте код :)
********************
Собственно, с помощью получившегося BAT-файла и можно будет выбирать нужный драйвер. 

 

Шаг 2. К BAT-файлу, что мы сделали в Шаге 1, создаем два ярлыка и называем их как-нибудь адекватно, напр. "Start KX" и "Start Creative".
В свойствах ярлыка "Start KX", в поле "Объект" дописываем через пробел слово "kx", а в свойствах "Start Creative" - "creative". 
Ставим им какие-нибудь хорошие иконки и копируем в "Панель быстрого запуска".




Всё, радуемся жизни.

Пример, получившихся файлов.

 

Корректировка действий с учетом Win98SE

Собственно, различий, насколько я помню, всего два:

1. Этап 1, Шаг 1 - не трогаем права доступа, ибо в Win98 такого понятия нет :)

2. Этап 3, Шаг 1 - в приведенном коде нужно заменить строки

:reboot
shutdown -r -t 00

на 

:reboot
rundll32 shell32.dll,SHExitWindowsEx 2

 

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

Удачи!

 

 P.S. Ответы на некоторые вопросы.

Q: допустимы ли перезагрузки(выключения) компьютера в процессе работы по инструкции или
всю работу надо делать за один "присест", не выключая компьютер?

A: "Этап 1" обязательно выполняется за один заход, дальше перед "Этапом 2" удаляется kx-драйвер из "Диспетчера устройств", потом компьютер нужно перезагрузить, после этого установить Creative-драйвер(через компакт диск) и снова перезагрузить (он сам это попросит), ну а дальше проделать "Этап 2" и "Этап 3" (тоже желательно за один заход).

Q: сохранение раздела реестра ....\Run (см. этап 2 "Важно!!!") до установки Creative-драйвера когда лучше сделать - до установки любых драйверов или после установки кХ-драйвера с последующим его удалением?

A: Особой разницы нет, потому как с kx грузится только kxmixer. 
Важно сохранить раздел до установки Creative-драйвера и после его установки, чтобы можно было сравнить какие программы добавились в автозагрузку.

Q: Когда при первой попытке я копировал только один подраздел (и соответственно
удалил только одно устройство),у меня ничего не получилось(может быть и по
другой причине),сейчас систему переустановил и хочу повторить попытку с
Вашей помощью(если Вы будете настолько любезны).


A: Возможно Вы неправильно устанавливали Creative-драйвер.
Попробую описать, как происходит процесс установки в реале:

1) После "Этапа 1" удаляете kx-драйвер из "Диспетчера устройств" и перезагружаете компьютер.
2) После перезагрузки система обнаружит новые устройства и предложит установить драйвер, нажимаете кнопку "Отменить". Вставляете компакт-диск, который шел вместе со зв. картой, и запускаете инсталятор. После установки, вновь перезагружаете компьютер.
3) После этого должен нормально работать Creative-драйвер, и тогда переходите к "Этапу 2" и т.д.

 

Если у кого после всего этого возникают какие-либо вопросы, пишите - разберемся.

И еще раз: удачи!

 

BlindGuard (blindguard@bk.ru)
Написано - 24.06.2004
Последнее обновление - 16.09.2004