Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Агуров П.В. -> "Интерфейсы USB. Практика использования и программирования" -> 75

Интерфейсы USB. Практика использования и программирования - Агуров П.В.

Агуров П.В. Интерфейсы USB. Практика использования и программирования — СПб.: БХВ-Петербург, 2004. — 576 c.
ISBN 5-94157-202-6
Скачать (прямая ссылка): interface2004.djvu
Предыдущая << 1 .. 69 70 71 72 73 74 < 75 > 76 77 78 79 80 81 .. 166 >> Следующая

219
var Buffer: array[0..1023] of Char; begin
SetString(Result, Buffer, GetSystemDirectory(Buffer, SizeOf(Buffer))); end;
Il получение имени драйвера function GetDriverPath : String; begin
Result:= GetSystemDir + '\giveioexisys1; end;
Il создание файла драйвера из ресурса
Function TGivelOEx.CreateFileFrcmResource : Boolean;
Var S: TFileStream; Rare: HRSRC; Res: THandle;
Data: Pointer; Begin Result := False;
Il 101 - номер ресурса в ресурсном файле
Rare := FindResource (HIns.tance, MakelntResource (101), RT-RCDATA); If Rsrc = 0 then Exit;
Res:«= LoadResource(HInstance, Rsrc); Try
Data := LockResource(Res); If Data <> nil then Try
S:= TFileStream.Create(GetDriverPath, finCreate); Try
S.WriteBuffer(Data", SizeOfResource(HInstance, Rsrc>); Finally
S.Free; End;
Result:= True; Finally UnlockResource(Res); End; Finally
FreeResource(Res); End; End;
220
Часть III. Практика программирования
Il удаление файла драйвера Procedure TGivelOEx.RemoveFile; var DriverPath : String; Begin
DriverPath:= GetDriverPath; Windows.DeleteFile(PChar(DriverPath)); End;
Естественно, такая процедура возможна только для динамической загрузки драйвера с помощью SCM-менеджера.
9.5. Инструменты создания драйверов
Процесс написания драйверов достаточно сложен и трудоемок, и, конечно, на рынке программного обеспечения появились программы, облегчающие написание и тестирование драйверов.
9.5.1. N u M eg a Driver Studio
Этот программный комплекс включается помощником, интегрирующимся со средой разработки Microsoft Visual Sdutio. Последовательно отвечая на вопросы помощника, можно получить работоспособный скелет драйвера. Для компиляции полученного кода требуются библиотеки и классы NuMega и Microsoft DDK.
9.5.2. Jungo WinDriver
Пакет предназначен для разработки драйверов устройств, использующих стандарты PCI, Compact PCI, USB, ISA, ISA PnP, EISA и работающих под управлением операционных систем Windows 9X/ME/NT/2000. Позволяет обращаться к физической памяти, портам, устанавливать собственные обработчики аппаратных прерываний. Не требует наличия Windows DDK и программирования на уровне ядра. Используется графическая оболочка для диагностики оборудования и автоматической генерации кода на языках С/С++ или Pascal (Delphi).
9.5.3. Jungo KernelDriver
Пакет предназначен для разработки драйверов устройств, использующих стандарты PCI, Compact PCI, USB, ISA, ISA PnP, EISA и работающих на уровне ядра под управлением операционных систем Windows 9X/ME/NT/ 2000. Обеспечивает более высокую производительность, чем WinDriver. Требует наличия Windows DDK. Используется графическая оболочка для диагностики оборудования и автоматической генерации кода.
Глава 10
Спецификация PnP для USB
Windows обнаружила перемещение указателя мыши. Изменения вступят в силу после перезагрузки системы.
10.1. Общие сведения о системе Plug and Play
Появление огромного числа моделей периферийных устройств привело к очевидной невозможности их ручного конфигурирования. Выбор портов, номеров аппаратных прерываний, ячеек памяти... А ведь все параметры надо выставить корректно, исключая конфликты оборудования. При этом следует учитывать, что некоторые устройства умеют "подвинуться" на другие номера прерываний, а некоторые — требуют фиксированного номера. Другими словами, очевидна необходимость автоматического конфигурирования устройств.
10.1.1. Задачи и функции Plug and Play
Протокол Plug and Play (дословно, "подключил и играй") позволяеі достаточно просто подключать новое оборудование. Перед началом работы система (BIOS при начальной загрузке, Windows при запуске) опрашивает устройства, узнает их требования к системным ресурсам и пытается бесконфликтно разделить ресурсы между устройствами. Если это не удается, конфликтующие устройства будут работать некорректно. В этом случае необходимо вручную внести корректировки в настройки. Многие устройства, например, не поддерживают самостоятельное переключение диапазонов используемых ресурсов, но могут настраиваться с помощью специальных переключателей. Спецификация Plug and Play предусматривает также "горячее" подключение устройств, т. е. подключение во время работы.
Итак, основными функциями системы PnP (это сокращенное обозначение Plug and Play) являются:
? определение подключаемых устройств;
? идентификация устройств, уведомление ОС об их появлении;
222
Часть III. Практика программирования
О определение отключения устройства и уведомление об этом ОС;
П автоматическое конфигурирование устройств без вмешательства пользователя.
Для того чтобы устройство смогло поддерживать спецификацию PnP, должно быть выполнено несколько условий:
П устройство должно уметь выполнять программное конфигурирование. Должна существовать возможность установки портов ввода/вывода, задействованных прерываний и ресурсов памяти с помощью программного конфигурирования, исключая механическое конфигурирование с помощью перемычек и переключателей;
П устройство и шина, к которому оно подключается, должны информировать систему о подключении, отключении или изменении конфигурации устройств;
Предыдущая << 1 .. 69 70 71 72 73 74 < 75 > 76 77 78 79 80 81 .. 166 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100