Rocket Division Software
http://www.starburnsoftware.com/forum/

Read Raw issue - System Hang after out of track read
http://www.starburnsoftware.com/forum/starburn-sdk-f3/read-raw-issue-system-hang-after-out-track-read-t2005.html
Page 1 of 1

Author:  Linden [ Wed Dec 09, 2009 6:24 am ]
Post subject:  Read Raw issue - System Hang after out of track read

Using $20080820; 10: Evolution

We've been using the following code as a fast ReadCooked and it works 99% of the time

BUT in a rare but repeatable set of conditions a complete system hang (Task Manager doesnot help) will occur

1) read is to an area outside a track (with a specific disk) the function returns false normally but 1 sector will return success
2) after that the next read to a track area will put the sector count into the buffer and then pad 1 sector with 0 (other data in buffer is uneffected) - this will happen with a cooked read as well
3) do a number of other additional reads successfully
4) Reread previously read sector (with cooked) will HARD crash a PC
5) Log finishes with
DeviceIoControl() failed, status 121 ( 0x79 )
Semaphore timeout, re-executing the CDB, 1 vs. 5000

Linden

AnEXCEPTION := StarBurn_CdvdBurnerGrabber_ReadRaw(
_CdvdBurnerGrabber,
@ExceptionText,
sizeof(ExceptionText),
Status,
@aCDB_FAILURE_INFORMATION,
EXPECTED_LB_TYPE_ANY,
_Block,
_BlockCount, // 1 - 32
ERROR_FIELD_NO_ERROR, // No error data included
FALSE, // No EDC/ECC data
TRUE, // we need user data
HEADER_CODE_NONE, // No headers
FALSE, // No SYNC pattern
SUBCHANNEL_NO, // No sub-channel
_Buffer, // Pointer to data buffer to receive the payload
_BufferLen );

called with

if abs( SlowCooked - LBA ) > 1000 then
begin
SlowCooked := -1000; //try again
ttick := gettickcount;
Result := TStarBurnRAWClasses.SB_CdvdBurnerGrabber_ReadCooked( CdvdBurnerGrabber, LBA, blocks, buf, blocks * FSectorSize, FALSE );
if gettickcount - ttick > 3000 * blocks then
SlowCooked := LBA + blocks div 2;
end;
if not result then
//need the exception for bad LBA processing
Result := TStarBurnRAWClasses.SB_CdvdBurnerGrabber_ReadRaw( CdvdBurnerGrabber, LBA, blocks, buf, blocks * FSectorSize );

Author:  anton (staff) [ Wed Dec 09, 2009 12:09 pm ]
Post subject:  Re: Read Raw issue - System Hang after out of track read

1) We don't support anything released before V10.5 (and V12 in a couple of days).

2) We do need FULL StarBurn log and not the quote you think makes sense. As it does not.

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/