![]() |
Probleme mit CyUSB und IOCTL
Moin,
ich bin gerade dabei, unsere in D5 geschriebenen USB Anwendungen auf den CyUSB Treiber von Cypress zu portieren. Dazu will ich das IOCTL Interface des Treibers nutzen. Leider laufen die C-Code Beispiele nicht, die ich für Delphi umgeschrieben habe nicht richtig. Da mir der Code aus ![]()
Delphi-Quellcode:
procedure NonEP0TransferOut(handle:THandle;endPointAddress:Byte; pBuffer:PBuffer; bufferSize:Word);
const cBufSize = 512; var singleTransfer:SINGLE_TRANSFER; buffer : array[0..cBufSize+SizeOf(SINGLE_TRANSFER)-1] of Byte; i : Integer; dwBytes: DWORD; begin ZeroMemory(@singleTransfer, SizeOf(SINGLE_TRANSFER)); SingleTransfer.SetupPacket.ulTimeOut := 1000; singleTransfer.ucEndpointAddress := endPointAddress; singleTransfer.IsoPacketLength := 0; singleTransfer.BufferOffset := SizeOf(SINGLE_TRANSFER); singleTransfer.BufferLength := bufferSize; dwBytes := 0; Move(SingleTransfer,Buffer,SizeOf(SINGLE_TRANSFER)); for i := 0 to bufferSize-1 do begin buffer[i+SizeOf(TSingleTransfernEP0)] := pBuffer^[i]; // zu übertragende Daten direkt hinter den SINGLE_TRANFER record schreiben end; if not DeviceIoControl( handle,IOCTL_ADAPT_SEND_NON_EP0_TRANSFER, @buffer, bufferSize+SizeOf(SINGLE_TRANSFER), @buffer, bufferSize+SizeOf(SINGLE_TRANSFER), dwBytes,nil) then raise ECyUSBException.Create('Error #17 during nonEP0 control Transfer : ' + IntToStr(getLastError())); end;
Delphi-Quellcode:
GetLastError() gibt in der Exception 87 ERROR_INVALID_PARAMETER zurück.
const cBufSize = 512;
TBuffer = array[0..cBufSize] of UCHAR; PBuffer = ^TBuffer; Hat jemand ne Idee, welcher Parameter das ist und was falsch ist ? gruss Simon Koops |
AW: Probleme mit CyUSB und IOCTL
Benutze mal
![]() ![]() Hättest du vielleicht das exakte C-Beispiel zur Hand? Dürfte schneller sein zu überprüfen wo deine Übersetzung nicht stimmt ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz