Einzelnen Beitrag anzeigen

Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#4

AW: IOCTL_CHANGER_GET_PRODUCT_DATA und "Ungültige Funktion"

  Alt 13. Mai 2011, 21:17
Delphi-Quellcode:
Const
  IOCTL_CHANGER_GET_PRODUCT_DATA   = $00304008;
Leider komme ich immer in den Zwei, wo er mit SysErrorMessage(GetLastError) anzeigt. Allerdings kann ich mit der Meldung "Ungültige Funktion" nicht soviel anfangen.
Code:
#define FILE_READ_ACCESS         ( 0x0001 )   // file & pipe
#define METHOD_BUFFERED                0
#define FILE_DEVICE_CHANGER            0x00000030
#define IOCTL_CHANGER_BASE             FILE_DEVICE_CHANGER

#define CTL_CODE( DeviceType, Function, Method, Access ) (                 \
    ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
)

#define IOCTL_CHANGER_GET_PRODUCT_DATA      CTL_CODE(IOCTL_CHANGER_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS)
Rechnen wir also mal nach:

Code:
(0x00000030 << 16) | ((0x0001) << 14) | ((0x0002) << 2) | (0)
Der Wert den du schickst ist also korrekt. In diesem Falle dürfte wohl das angesprochene Device einfach nicht diese Funktion unterstützen.

Ich habe lediglich in ein paar russichen Foren etwas dazu gefunden. Aber leider spreche ich kein Russisch mehr
Wie hat Lenin so schön gesagt?: Учиться, учиться, учиться
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat