Are Standard WMI blocks listed anywhere?

I am trying to understand how storport works with WMI.

I started an initial discussion here:http://www.osronline.com/showThread.cfm?link=184000
That thread was archived, so I am starting a new thread.

I discussed this initial problem with Microsoft and the preliminary response indicates that I do need an MOF.

I assumed that my storport driver was not required to define anything in an MOF. I could either use predefined structures defined by Microsoft (e.g. HBA API) or simply not allow any data to be retrieved/set.

Some of Microsoft’s documentation seems to confirm my hypothesis.
http://msdn.microsoft.com/en-us/library/ff563922(v=VS.85).aspx

Since HBA API is primarily a Fibre Channel document, how does it apply to SAS/SATA/SCSI storport drivers?

Is there any other document that describes the standard blocks required for a storport driver?

>Is there any other document that describes the standard blocks required for a storport driver?
Unfortunately there are a lot of undocumented stuff of using WMI in miniport StorPort drivers.
I found that some of miniport StorPort drivers put FALSE in WmiDataProvider of PORT_CONFIGURATION_INFORMATION, which contradicts WDK documentation, but enable WMI by calling an inline function StorIoWMIRegistrationControl. This function is defined in stortrce.h.

Igor Sharovar

xxxxx@pmc-sierra.com wrote:

I am trying to understand how storport works with WMI.

I started an initial discussion here:http://www.osronline.com/showThread.cfm?link=184000
That thread was archived, so I am starting a new thread.

I discussed this initial problem with Microsoft and the preliminary response indicates that I do need an MOF.

I assumed that my storport driver was not required to define anything in an MOF. I could either use predefined structures defined by Microsoft (e.g. HBA API) or simply not allow any data to be retrieved/set.

Some of Microsoft’s documentation seems to confirm my hypothesis.
http://msdn.microsoft.com/en-us/library/ff563922(v=VS.85).aspx

Since HBA API is primarily a Fibre Channel document, how does it apply to SAS/SATA/SCSI storport drivers?

Is there any other document that describes the standard blocks required for a storport driver?

You started another thread in March for these questions,
http://www.osronline.com/showThread.cfm?link=183645

In summary:

  • this area is poorly and confusingly documented for Windows drivers;
    about the best documentation of the blocks I’ve come across is
    http://msdn.microsoft.com/en-us/library/ff557239(VS.85).aspx
    (WDK > Device and Driver Technologies > Storage Devices > Reference >
    Storage WMI Classes > HBA WMI Classes).

  • The original HBA API (the preliminary SNIA work and the first ANSI
    version) was specific to Fibre Channel. It was extended to cover
    InfiniBand in the second ANSI version (FC-HBA). It was extended again to
    support SAS (and renamed to SM-HBA) in the third ANSI version in 2006.
    Microsoft added support for SM-HBA (hence SAS) to both WMI and its
    wrapper hbaapi.dll in Server 2008 R2 (though I think the header was
    updated to include the SM-HBA definitions in Server 2008).

If you ever manage to get clear on how this lot is supposed to be done
in a StorPort miniport, it would be very helpful if you could report it
here. Good Luck!

The file hbaapi.mof is distributed with each release of Windows, but not the DDK. This seems a little odd to me.

I took a look at Server 2008 R2 and it has a much bigger file (hbaapi.mof) than the one I was using. It includes references to SM-HBA.