Questo topic e' stato chiuso dal moderatore.
17/05/19 7:12
orma674
Salve,
c'è qualcuno che mi puo aiutare a capire dove sta l'errore in questo frammento di codice.
Dim byteReaded2 As UInt32
Dim n As Integer = 27
Dim data(2352 * n - 1) As Byte
Dim ptrData As IntPtr = Marshal.AllocHGlobal(2352 * n - 1)
Dim tPositionSector As UInt32 = tStartSector
While (tPositionSector + n < tEndSector)
Dim RAW_READ_INFO1 As RAW_READ_INFO
RAW_READ_INFO1.TrackMode = 2
RAW_READ_INFO1.DiskOffset.LowPart = tPositionSector * 2048
RAW_READ_INFO1.SectorCount = n
Dim ptrInfo As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(RAW_READ_INFO1))
Marshal.StructureToPtr(RAW_READ_INFO1, ptrInfo, False)
Dim ret1 As Int16 = DeviceIoControl(hCDDrive, IOCTL_CONSTANTS.IOCTL_CDROM_RAW_READ, ptrInfo, Marshal.SizeOf(RAW_READ_INFO1), ptrData, RAW_SECTOR_SIZE * n - 1, byteReaded2, IntPtr.Zero)
If ret1 <> 0 Then
Marshal.Copy(ptrData, data, 1, RAW_SECTOR_SIZE * n)
Else
MessageBox.Show("Cannot read INFO!"
End If
Marshal.FreeHGlobal(ptrInfo)
tPositionSector = tPositionSector + n
End While
Mi ritorno sempre errore!!!
Grazie.
Marcello
c'è qualcuno che mi puo aiutare a capire dove sta l'errore in questo frammento di codice.
Dim byteReaded2 As UInt32
Dim n As Integer = 27
Dim data(2352 * n - 1) As Byte
Dim ptrData As IntPtr = Marshal.AllocHGlobal(2352 * n - 1)
Dim tPositionSector As UInt32 = tStartSector
While (tPositionSector + n < tEndSector)
Dim RAW_READ_INFO1 As RAW_READ_INFO
RAW_READ_INFO1.TrackMode = 2
RAW_READ_INFO1.DiskOffset.LowPart = tPositionSector * 2048
RAW_READ_INFO1.SectorCount = n
Dim ptrInfo As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(RAW_READ_INFO1))
Marshal.StructureToPtr(RAW_READ_INFO1, ptrInfo, False)
Dim ret1 As Int16 = DeviceIoControl(hCDDrive, IOCTL_CONSTANTS.IOCTL_CDROM_RAW_READ, ptrInfo, Marshal.SizeOf(RAW_READ_INFO1), ptrData, RAW_SECTOR_SIZE * n - 1, byteReaded2, IntPtr.Zero)
If ret1 <> 0 Then
Marshal.Copy(ptrData, data, 1, RAW_SECTOR_SIZE * n)
Else
MessageBox.Show("Cannot read INFO!"
End If
Marshal.FreeHGlobal(ptrInfo)
tPositionSector = tPositionSector + n
End While
Mi ritorno sempre errore!!!
Grazie.
Marcello
aaa