Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Sign In with Google

Our Sites 


No poll attached to this discussion.

In order to better support our growing community we've set up a new more powerful forum.

The new forum is at:

The new forum is running IP.Board and will be our primary forum from now on.

This forum is being retired, but will remain online indefinitely in order to preserve its contents. This forum is now read only.

Thank you,

Silicon Image 3132 capable of getting SMART via Scanner?

edited July 2012 in Scanner
Question, Do you know if the  Silicon Image 3132  is capable of getting SMART data from drives via 3rd party SMART monitoring such as Scanner?  I get mixed results via google searches, and thought I'd ask so I know what to expect.  Alex said he uses special commands per hardware that's detected, and I'm hoping the 3132 is one of the ones working with SMART!

I ordered the MPX-3132 which is a PCI express mini controller card.



  • Covecube
    SiL 3132 supports SMART through WMI and Direct I/O (Port Driver) based on my testing, so yes.
  • Member

    Thanks Alex that's good to know excellent.   

    I remember you had Direct I/O for scanning enabled in one of the beta's of Scanner. (but since then disabled it)  Is Direct I/O still available for the basic SMART queries via the current Scanner build?

    I also asked Matt, the Dev of the other WHS SMART add-in about the Sil 3132 and SMART.   Here is his interesting and very technical response.  (looks like you've figured it out before him?)

    Part 1) (character limit with replies on here)

    On Tue, Jul 24, 2012 at 7:56 AM, Matthew  wrote:



    I owe you an apology.  The 3132 is in fact the controller I’m fighting with.  The controller in the EX490 is an SiI 3531, which has a single path.


    To get a handle to a disk on an SiI controller, this C++ code is used:


    wsprintf(szBusPathBody, _T("tempBusSil%d"), siliconImageType);

           if(siliconImageType == 3132)


                  wsprintf(szSilDeviceName, _T("\\Device\\Scsi\\Si%dr51Port1Path%dTarget%dLun0"), siliconImageType, scsiPath, scsiTarget);




                  wsprintf(szSilDeviceName, _T("\\Device\\Scsi\\Si%d1Port1Path%dTarget%dLun0"), siliconImageType, scsiPath, scsiTarget);



           if(DefineDosDevice(DDD_RAW_TARGET_PATH, szBusPathBody, szSilDeviceName))


                  driveName.Format(_T("\\\\.\\%s"), szBusPathBody);

                  return CreateFile(driveName, GENERIC_READ | GENERIC_WRITE,




  • Member

    Part 2)

    If you pull up a disk in Device Manager, and go to the Details tab, you’ll see the fully-qualified hardware name of the device, like the examples below. The first is from the EX490; the other from an HP desktop with an add-on SiI card:


    image image


    As you can see in the second example, there is an “r5” inserted between the SiI type (i.e. 3531 or 3132) and the “1Port”.  Apparently this is because the SiI 3132 is a “SoftRaid5” controller.  Seemed like an easy fix, right?  As you can see in the source code above, if the controller is a 3132, I inject the “r5” into the string, so when I call the Windows API CreateFile, I’m passing in a valid device name.


    The kicker is that Windows is returning a device handle back to me!  If you specify an invalid device name, Windows should return the error code INVALID_HANDLE_VALUE.


    Once I have a handle, it is passed into this code block notice the commented-out line “//sid.port = scsiBus;”.  I found this bug yesterday.  It needs to be the SCSI target ID, which in the case of the SiI 3531 in the EX490, corresponds to bays 0, 1, 2 and 3 in the Rosewill enclosure.  So as far as the SiI 3531 is concerned, problem solved, case closed.


    The problem with the 3132 is that I don’t see any way to change paths on the 3132.  I’ve scoured Google and I’ve compared my code with that of open-source tools out there such as smartmontools and Crystal Disk Info.  Both seem to have the same problem.  CDI’s code is similar to mine, but it’s got a couple of bugs in it so it doesn’t get the 3531 drives right.  If I tweak CDI’s code I can get it working on the 3531 to yield the same results as my code, but the problem persists on the 3132.


  • Member
    Part 3)

    The issue seems to be the fact that the SiI 3132 is a multi-path device.  In other words, it has multiple SCSI channels.  The 3531 is a single channel device.  One port can accommodate up to 4 (maybe 5) devices.  The 3132 has two channels, each of which can accommodate 4 or 5 devices.  The problem is trying to figure out HOW to read from path 1 (the two drives above are shown on path 0). The other drive on my 3132 is \Device\Scsi\Si3132r51Port1Path1Target0Lun0.  So even when I run “CreateFile” and get a handle to the drive on path 1, when the code below runs, it returns data for the drive on path 0.  This leads me to believe when I call CreateFile, I’m getting a handle not to the disk specifically, but rather to the controller and the controller is handing back the results.  If I have a handle to disk A I should not get back disk B’s data.

  • Member
    Part 4)
    ((Insert more code here, wont' let me post it on this forum))

    Part 5)

    Sent: Tuesday, July 24, 2012 8:25 AM
    To: Matthew

    Subject: Re: Issue HS2-17 has a new comment


    Oh yeah? Interesting :-)

    Hmm yeah the card I have on order has two ports as well. Uh oh

    Sent from my iPhone

    On Jul 24, 2012, at 5:06 AM, Matthew wrote:

    I'll get back with you on this one shortly. I was involved in a battle with the SiI 3132 in my HP MSS EX490 just yesterday. I was rooting around in a lot more C++ code than I wanted (I like C#). It was a bloodbath but I think I emerged victorious.


    The problem was that I was getting correct SMART results for all four drives in my Rosewill enclosure, but the identity data (serial number, model, RPM, etc.) was showing up the same for all four drives! (The first drive's data was repeated across the four drives.)


    I beat on the code for several hours (silicon image doesn't have a public API so I'm shooting in the dark). I finally got it working. Interestingly enough, I have a 2-port SiI controller in another computer and that one is plagued by the same problem, and that one I can't figure out. I think because it has two SCSI paths, not just one.



    Sent from my iPhone

    On Jul 24, 2012, at 1:15 AM, Jon

     Question, Do you know if the  Silicon Image 3132  is capable of getting SMART data from drives via 3rd party SMART monitoring?  I get mixed results via google searches, and through I'd ask so I know what to expect.  I'm pretty sure you use special commands per hardware that's detected, and I'm hoping the 3132 is one of the ones working with SMART!

     I ordered the MPX-3132 which is a PCI express mini controller card.



  • Covecube

    Sounds interesting.

    As I recall, the way I confirmed that SMART works for this chip was at a customer's PC while doing remote support some time ago.

    I've ordered a card with the chip, it will arrive over the weekend so I'll re-confirm and let you know.
  • Member
    For the HighPoint RR622 card (in non-RAID firmware/driver mode), I confirmed I'm NOT able to get SMART data via any 3rd party app including FlexRaid.  Bummer :-/

    As I said, I'm going to try the MPX3132 eSata controller next/soon (it's on order from over seas)

    I got this promising response from the manufacturer. (sounds promising)

    Do you happen to know if I can expect to receive S.M.A.R.T. data from the drives connected to my new MPX-3132?   I'm going to install S.M.A.R.T. monitoring software that keeps an eye on things a bit closer than the built in Motherboard & Windows stuff.

    When the MPX-3132 is at RAID mode, it doesn't support S.M.A.R.T.
    When the MPX-3132 is not at RAID mode, it support S.M.A.R.T.
  • edited July 2012 Member
    I also just saw that Commell (maker of the MPX3132) also makes a similar mini pci express sata controller called the MPX-9115.   It seems it's faster with SATA III, but uses a different controller

    It says it uses the Marvell 88SE9125 Chipset controller.   Do you know anything about that?

    I see the 9115 is SATA III but I doubt I'll see speed differences between SATA II and SATA III since my PCI Express Card slot says it only goes to 3Gbs anyway.  The real choice is which one has SMART data, boots fast'ish, and which one is proven to be stable long term.

  • edited July 2012 Covecube
    Regarding the SiL 3132,

    The Scanner does have basic SMART access on it, but no power status / temperature histories and only basic identify information.

    This is because Direct I/O can't send command to the drive. I've dug into this and it seems like a bug in their driver. Targeting the calls to different device objects does not make a difference.

    In addition, it seems that they have implemented a proprietary command to send stuff directly to the disk. I'll see if we can implement this in some future version of the Scanner which might yield better results than the standard commands.

    But even with these limitations, the Scanner does get the correct model for the drive and is able to query BitFlock and retrieve the correct SMART interpretation. It will monitor SMART and warn you of any impending trouble. So the most important SMART functionality works fine with this controller.

    I have no info on the Marvell 88SE9125. However the 88SE9130 only gets SMART in "unsafe" Direct I/O mode. This info is from 2/14/2011, so things may have changed since then.
  • Member
    Excellent that's good enough for me for now. Your pre smart warnings have saved me in the past so I'll be able to rest easy with the SiL 3132
Sign In or Register to comment.