Показать сообщение отдельно
  #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 просмотров)
Ответить с цитированием