Kак-то раз 05 Sep 03 Lev Fireworker написал(a) для Grigoriy Novitskiy следующее:
GN>> Подскажите пожалуйста где можно почитать как пpоходит общение ко GN>> тpолеpов с кампутеpами. Как мне подсказали, оpиентиpовочное GN>> напpавление WDM. LF> Про написание WDM-драйверов есть хорошая кника "Walter Oney. LF> Programming the Microsoft Windows Driver Model."
Подсказали неправильно. И никаких драйверов ни в коем случае делать не надо.
Если рассматривать обсуждающийся тут USB - то есть два типа устройств: стандартные, соответствующие одному из USB-классов, и вещи-в-себе. Первые автоматически подхватываются любой операционкой, знающей USB, и дело за малым - добраться до них прикладной программе, управляющей устройством.
А вторые, в большинстве случаев - глюк на глюке и глюком погоняет. Вечные конфликты, несовместимости, падения ядер ОС, пляски с бубном при появлении новых ОС...
Конкретный пример - драйвер (ну объясните, нафига тут вообще какой-то драйвер нужен??) точки доступа D-Link DWL-900AP при подключении оной к Win XP Pro Eng видит эту точку доступа только два-три раза, затем не видит вообще. Впоследствии несколько раз приводил к ребутам системы (саму точку доступа давным давно не подключали), в логе каждый раз написано о какой-то ошибкой, связанной с DWL-900AP. Драйвер телефона Motorola C350 ставится под XP с таким шаманством, которого я со времён MS-DOS не видел - несколько перезапусков управляющей программы, перемежающееся с подсовыванием разных .inf файлов и правкой реестра на ходу. Драйвер iPAQ эпизодически приводит к... пропаданию USB-контроллера и всех подключённых к нему устройств до перезагрузки винды. Это только то, что сходу вспомнилось.
Стандартные же USB-устройства - например, MP3 плееры и фотоаппараты (видны в системе как диски), принтеры, мыши, клавиатуры и т.п. - т.е. всё, что поднимается безо всяких драйверов - как им и положено, работают безглючно и безукоризненно.
А мораль сей басни такова - если делается своё USB-устройство, его однозначно следует сделать соответствующим одному из стандартных USB-классов, наиболее соответствующих сути данного устройства. В этом случае со стороны компа достаточно написать прикладную программу, и не нужно лезть в дебри системного программирования, рискуя наглючить так, как описано выше (а без опыта программирования будет ещё хуже!).
__ __/ / Powered [pepsi inside] \_\/ by MOTOROLA [smoking suxx]