Announcement

Collapse
No announcement yet.

SSD errors

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • SSD errors

    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:
    Code:
                        
    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

  • #2
    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.

    Comment


    • #3
      Thanks. We happen to be seeing this issue with OCZ Vertex drives. I will take a look.

      Comment


      • #4
        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

        Comment

        Working...
        X