PDA

View Full Version : SSD errors



drivard
06-03-2010, 07:18 PM
Hi,
We are using the SmartDisk DLL SDK in our product. We have noticed that systems with Solid State Drives are reporting errors when the client software is running under elevation. When not run under elevation, SmartDll_Init() returns -7006, which is expected, I guess.

In our code, we make these calls:


SmartDll_GetSmartAttributeByID(tmpAttrValue, out tempBufLen, ATTR_REALLOC_SECTOR_COUNT, ATTR_TYPE_INT_STATUS, i);
if (Marshal.ReadIntPtr(tmpAttrValue).ToInt32() != 0)
{
return statusSMART.WARNINGorFAIL;
}
and tmpAttrValue comes back as 0x00501948

Are SSD's supported? Is there any way to just "know" the device is an SSD?
Is there a workaround/fix available?

thanks,
Dennis

David (PassMark)
06-03-2010, 08:33 PM
SSD's are supported. But not all solid state drives support SMART. Some also have partial support.

I think the way to detect if the drive is a SSD is to look at the IDE registers.

These numbers are from a OCZ-VERTEX SSD
IDE Registers:
Features: 0x0
Sector Count: 0x1
Sector Number: 0x1
Cylinder Low: 0x0
Cylinder High: 0x0
Drive Head: 0xA0
Command: 0xEC

The Cylinder Low & high values give away that this is a SSD.

drivard
06-03-2010, 08:48 PM
Thanks. We happen to be seeing this issue with OCZ Vertex drives. I will take a look.

drivard
06-04-2010, 05:06 PM
Hi,
unfortunately, that doesn't appear to work.
Our systems have the SSD as the boot disk, and a standard disk as disk 2. Both are reporting 0 for cylinder high and cylinder low.

I've dumped the debug log via the init API. Would you like me to send it to you?
Dennis