Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.03.2007, 15:39
Алексей1980 Алексей1980 вне форума
Прохожий
 
Регистрация: 03.03.2007
Сообщения: 25
Репутация: 10
По умолчанию Премер исходника для работы с USB портом, но только опрос портов.

В прикрепленных файлах лежит пример опроса USB на наличие устройств.
Никак немогу найти код для оключения порта, хотелось бы что то типа

// Отображение информации о порте
procedure TForm1.ShowHubPortDetail(hRoot : THandle; iPort : Integer);
var Success : LongBool; NodeConnInfo : TNodeConnectionInformation;
BytesReturned : Cardinal; PortStatus : Byte;
begin
NodeConnInfo.ConnectionIndex:= iPort+1; // нумерация с 1!
// IOCTL_USB_GET_NODE_CONNECTION_INFORMATION
Success:= DeviceIoControl(hRoot, GetUSBCtlCode(4),
@NodeConnInfo, sizeof(NodeConnInfo),
@NodeConnInfo, sizeof(NodeConnInfo),
BytesReturned, nil
);
If not(Success) then begin
Log(' Ошибка получения информации о порте');
Exit;
End;

PortStatus:= NodeConnInfo.ConnectionStatus[1];
If (PortStatus <> Byte(DeviceConnected)) then begin
If (PortStatus = Byte(NoDeviceConnected)) then begin
Log(Format(' К порту %d устройств не подключено',[iPort]));
End else begin
Log(Format(' Состояние порта %d = %d',[iPort, Byte(PortStatus)]));
End;
End else begin
If not(NodeConnInfo.DeviceIsHub) then begin
Log(Format(' К порту %d подключено устройство', [iPort]));
ShowDeviceDetail(hRoot, iPort);
End else begin
Log(Format(' К порту %d подключен хаб', [iPort]));
// послать IOCTL_USB_GET_NODE_CONNECTION_NAME
// получить дескриптор хаба и повторить операцию для
// каждого порта этого хаба
// рекурсия: ShowRootHubDetail(hRoot : THandle);
End;
End;
end;

http://msdn2.microsoft.com/en-us/library/aa476228.aspx справка по USB

вобщем нужно отключить устройство через DeviceIoControl(
например
USB#ROOT_HUB#4&39633dbc&0#{f18a0e88-c30c-11d0-8815-00a0c906bed8}
), но как заполнять DeviceIoControl( я незнаю.
F1 справка ничего по нему не находит
но даже если будет документация понему, это не сильно поможет, DeviceIoControl требует указания каких то буферов чтения, их размеров адресов.

P.S. забил прекрипить проект
Вложения
Тип файла: zip USB_API.zip (22.0 Кбайт, 238 просмотров)

Последний раз редактировалось Алексей1980, 26.03.2007 в 00:48.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:38.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter