SENDCMDOUTPARAMS + Buffer?



  • Im moment probiere ich über SMART_SEND_DRIVE_COMMAND und SMART_RCV_DRIVE_DATA Daten von meine HD herauszukriegen.
    Leider verstehe ich eine Sache nicht. Bei SMART_RCV_DRIVE_DATA bekomme ich in meinem Buffer eine SENDCMDOUTPARAMS-Struktur und danach irgendwo die Daten, die ich haben will. Nach http://www.osronline.com/ddkx/buses/ide_struct_08qa.htm, zeigt die bBuffer-Membervariable der SENDCMDOUTPARAMS-Struktur auf die Position im Output, wo sich meine Daten verstecken. Leider hat aber der bBuffer nur die Länge eines bytes und kann so gar kein Zeiger sein?! Oder habe ich da jetzt ein Denkfehler???

    Bitte helft mir:)



  • Das Ding hat (offiziell) eine Größe von 1, weil C(++) nicht mit Arrays undefinierter Größe zurechtkommt. Tatsächlich dürfte die Funktion einen etwas größeren Speicherbereich hinter der offiziellen Grenze des structs mit reserviert haben und dort die Daten untergebracht haben - wieviel das ist, steht im Element cBufferSize.

    ccccddddddx....
    ^   ^     ^cBuffer
    |   DriverStatus
    cBufferSize
    

Anmelden zum Antworten