GUID of HBA

Hi, does anyone know there is some kind of global
unique ID of a HBA card? Such like the global unique
physical address of a NIC card. The reason I’d like to
do this is in my upper HBA bus filter driver I need to
uniquely identify each HBA. That means I need to
identify a specific HBA card no matter system reboots
or there is some other HBA pluged in or removed from
the system. I know there is a Port:Path:TargetID:LUN
method to identify the HBA. But this may change if the
system configuration is changed. It depends on how the
system enumerate the device.

Any information will be appreciated.

Michael


Post your free ad now! http://personals.yahoo.ca

You cannot. SCSI HBAs have no unique numbers.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “Michael Zhu”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, September 16, 2003 5:52 AM
Subject: [ntdev] GUID of HBA

> Hi, does anyone know there is some kind of global
> unique ID of a HBA card? Such like the global unique
> physical address of a NIC card. The reason I’d like to
> do this is in my upper HBA bus filter driver I need to
> uniquely identify each HBA. That means I need to
> identify a specific HBA card no matter system reboots
> or there is some other HBA pluged in or removed from
> the system. I know there is a Port:Path:TargetID:LUN
> method to identify the HBA. But this may change if the
> system configuration is changed. It depends on how the
> system enumerate the device.
>
> Any information will be appreciated.
>
> Michael
>
> ______________________________________________________________________
> Post your free ad now! http://personals.yahoo.ca
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

“Michael Zhu” wrote in message news:xxxxx@ntdev…
>
> Hi, does anyone know there is some kind of global
> unique ID of a HBA card? Such like the global unique
> physical address of a NIC card. The reason I’d like to
> do this is in my upper HBA bus filter driver I need to
> uniquely identify each HBA. That means I need to
> identify a specific HBA card no matter system reboots
> or there is some other HBA pluged in or removed from
> the system. I know there is a Port:Path:TargetID:LUN
> method to identify the HBA. But this may change if the
> system configuration is changed. It depends on how the
> system enumerate the device.

I’ve not tried this, but you might try IoGetDeviceInterfaces on
GUID_DEVINTERFACE_STORAGEPORT

It will give you back a MULTI_SZ that contains names that won’t change for
each device in the system that exports that interface. Unfortunately, I
don’t know just what those are, and I don’t have time to find out.

Phil

Philip D. Barila Windows DDK MVP
Seagate Technology, LLC
(720) 684-1842
As if I need to say it: Not speaking for Seagate.
E-mail address is pointed at a domain squatter. Use reply-to instead.

If the controller moves to another slot and is installed as a new
device, the string for its device interface will be different then the
string from when it was in the previous slot.

D

This posting is provided “AS IS” with no warranties, and confers no
rights

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Phil Barila
Sent: Tuesday, September 16, 2003 10:28 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Re: GUID of HBA

“Michael Zhu” wrote in message news:xxxxx@ntdev…
>
> Hi, does anyone know there is some kind of global
> unique ID of a HBA card? Such like the global unique
> physical address of a NIC card. The reason I’d like to
> do this is in my upper HBA bus filter driver I need to
> uniquely identify each HBA. That means I need to
> identify a specific HBA card no matter system reboots
> or there is some other HBA pluged in or removed from
> the system. I know there is a Port:Path:TargetID:LUN
> method to identify the HBA. But this may change if the
> system configuration is changed. It depends on how the
> system enumerate the device.

I’ve not tried this, but you might try IoGetDeviceInterfaces on
GUID_DEVINTERFACE_STORAGEPORT

It will give you back a MULTI_SZ that contains names that won’t change
for
each device in the system that exports that interface. Unfortunately, I
don’t know just what those are, and I don’t have time to find out.

Phil

Philip D. Barila Windows DDK MVP
Seagate Technology, LLC
(720) 684-1842
As if I need to say it: Not speaking for Seagate.
E-mail address is pointed at a domain squatter. Use reply-to instead.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

The OP might want to consider using what the HBA is connected to in order to
indentify it, rather than a serial number on the HBA, as there is no real
standard for HBA serial numbers. Some adapters might have such a number in
their VPD, but it is not required. SCSI devices, on the other hand, support
unique serial numbers. Of course if the HBA isn’t connected to anything this
doesn’t help much :slight_smile:

=====================
Mark Roddy

-----Original Message-----
From: Doron Holan [mailto:xxxxx@windows.microsoft.com]
Sent: Tuesday, September 16, 2003 1:37 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Re: GUID of HBA

If the controller moves to another slot and is installed as a
new device, the string for its device interface will be
different then the string from when it was in the previous slot.

D

This posting is provided “AS IS” with no warranties, and
confers no rights

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Phil Barila
Sent: Tuesday, September 16, 2003 10:28 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Re: GUID of HBA

“Michael Zhu” wrote in message news:xxxxx@ntdev…
> >
> > Hi, does anyone know there is some kind of global
> > unique ID of a HBA card? Such like the global unique
> > physical address of a NIC card. The reason I’d like to
> > do this is in my upper HBA bus filter driver I need to uniquely
> > identify each HBA. That means I need to identify a specific
> HBA card
> > no matter system reboots or there is some other HBA pluged in or
> > removed from the system. I know there is a Port:Path:TargetID:LUN
> > method to identify the HBA. But this may change if the
> > system configuration is changed. It depends on how the
> > system enumerate the device.
>
> I’ve not tried this, but you might try IoGetDeviceInterfaces
> on GUID_DEVINTERFACE_STORAGEPORT
>
> It will give you back a MULTI_SZ that contains names that
> won’t change for each device in the system that exports that
> interface. Unfortunately, I don’t know just what those are,
> and I don’t have time to find out.
>
> Phil
> –
> Philip D. Barila Windows DDK MVP
> Seagate Technology, LLC
> (720) 684-1842
> As if I need to say it: Not speaking for Seagate.
> E-mail address is pointed at a domain squatter. Use reply-to instead.
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com To
unsubscribe send a blank email to xxxxx@lists.osr.com


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

Hi, Roddy, you said that the SCSI devices support
unique serial numbers. How can I get this unique
serial number for a specific SCSI device? And who sets
this unique serial number to that SCSI device? My
purpose is to uniquely identify a SCSI device. Is
there any other way to implement this?

Thanks all of you.

Michael

— “Roddy, Mark” wrote: >
The OP might want to consider using what the HBA is
> connected to in order to
> indentify it, rather than a serial number on the
> HBA, as there is no real
> standard for HBA serial numbers. Some adapters might
> have such a number in
> their VPD, but it is not required. SCSI devices, on
> the other hand, support
> unique serial numbers. Of course if the HBA isn’t
> connected to anything this
> doesn’t help much :slight_smile:
>
>
> =====================
> Mark Roddy
>
>
> > -----Original Message-----
> > From: Doron Holan
> [mailto:xxxxx@windows.microsoft.com]
> > Sent: Tuesday, September 16, 2003 1:37 PM
> > To: Windows System Software Devs Interest List
> > Subject: [ntdev] Re: GUID of HBA
> >
> >
> > If the controller moves to another slot and is
> installed as a
> > new device, the string for its device interface
> will be
> > different then the string from when it was in the
> previous slot.
> >
> > D
> >
> > This posting is provided “AS IS” with no
> warranties, and
> > confers no rights
> >
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com] On Behalf
> Of Phil Barila
> > Sent: Tuesday, September 16, 2003 10:28 AM
> > To: Windows System Software Devs Interest List
> > Subject: [ntdev] Re: GUID of HBA
> >
> > “Michael Zhu” wrote in message
> news:xxxxx@ntdev…
> > >
> > > Hi, does anyone know there is some kind of
> global
> > > unique ID of a HBA card? Such like the global
> unique
> > > physical address of a NIC card. The reason I’d
> like to
> > > do this is in my upper HBA bus filter driver I
> need to uniquely
> > > identify each HBA. That means I need to identify
> a specific
> > HBA card
> > > no matter system reboots or there is some other
> HBA pluged in or
> > > removed from the system. I know there is a
> Port:Path:TargetID:LUN
> > > method to identify the HBA. But this may change
> if the
> > > system configuration is changed. It depends on
> how the
> > > system enumerate the device.
> >
> > I’ve not tried this, but you might try
> IoGetDeviceInterfaces
> > on GUID_DEVINTERFACE_STORAGEPORT
> >
> > It will give you back a MULTI_SZ that contains
> names that
> > won’t change for each device in the system that
> exports that
> > interface. Unfortunately, I don’t know just what
> those are,
> > and I don’t have time to find out.
> >
> > Phil
> > –
> > Philip D. Barila Windows DDK MVP
> > Seagate Technology, LLC
> > (720) 684-1842
> > As if I need to say it: Not speaking for Seagate.
> > E-mail address is pointed at a domain squatter.
> Use reply-to instead.
> >
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@windows.microsoft.com To
> unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@stratus.com To
> unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as:
> xxxxx@yahoo.ca
> To unsubscribe send a blank email to
xxxxx@lists.osr.com

______________________________________________________________________
Post your free ad now! http://personals.yahoo.ca

You should be able to fetch page 80 or 83 using an inquiry command (with
EVPD set) to get the serial number. While page 80 is optional and page 83 is
mandatory, it is been our experience that, at least with block devices, you
have better luck with the ‘optional’ page 80. Technically you should first
read page 0 to figure out which pages the device supports. See the turgid
tome “SCSI Primary Commands - 3 (SPC-3)”.

=====================
Mark Roddy

-----Original Message-----
From: Michael Zhu [mailto:xxxxx@yahoo.ca]
Sent: Tuesday, September 16, 2003 3:38 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Re: GUID of HBA

Hi, Roddy, you said that the SCSI devices support
unique serial numbers. How can I get this unique
serial number for a specific SCSI device? And who sets
this unique serial number to that SCSI device? My
purpose is to uniquely identify a SCSI device. Is
there any other way to implement this?

Thanks all of you.

Michael

— “Roddy, Mark” wrote: >
> The OP might want to consider using what the HBA is
> > connected to in order to
> > indentify it, rather than a serial number on the
> > HBA, as there is no real
> > standard for HBA serial numbers. Some adapters might
> > have such a number in
> > their VPD, but it is not required. SCSI devices, on
> > the other hand, support
> > unique serial numbers. Of course if the HBA isn’t
> > connected to anything this
> > doesn’t help much :slight_smile:
> >
> >
> > =====================
> > Mark Roddy
> >
> >
> > > -----Original Message-----
> > > From: Doron Holan
> > [mailto:xxxxx@windows.microsoft.com]
> > > Sent: Tuesday, September 16, 2003 1:37 PM
> > > To: Windows System Software Devs Interest List
> > > Subject: [ntdev] Re: GUID of HBA
> > >
> > >
> > > If the controller moves to another slot and is
> > installed as a
> > > new device, the string for its device interface
> > will be
> > > different then the string from when it was in the
> > previous slot.
> > >
> > > D
> > >
> > > This posting is provided “AS IS” with no
> > warranties, and
> > > confers no rights
> > >
> > > -----Original Message-----
> > > From: xxxxx@lists.osr.com
> > > [mailto:xxxxx@lists.osr.com] On Behalf
> > Of Phil Barila
> > > Sent: Tuesday, September 16, 2003 10:28 AM
> > > To: Windows System Software Devs Interest List
> > > Subject: [ntdev] Re: GUID of HBA
> > >
> > > “Michael Zhu” wrote in message
> > news:xxxxx@ntdev…
> > > >
> > > > Hi, does anyone know there is some kind of
> > global
> > > > unique ID of a HBA card? Such like the global
> > unique
> > > > physical address of a NIC card. The reason I’d
> > like to
> > > > do this is in my upper HBA bus filter driver I
> > need to uniquely
> > > > identify each HBA. That means I need to identify
> > a specific
> > > HBA card
> > > > no matter system reboots or there is some other
> > HBA pluged in or
> > > > removed from the system. I know there is a
> > Port:Path:TargetID:LUN
> > > > method to identify the HBA. But this may change
> > if the
> > > > system configuration is changed. It depends on
> > how the
> > > > system enumerate the device.
> > >
> > > I’ve not tried this, but you might try
> > IoGetDeviceInterfaces
> > > on GUID_DEVINTERFACE_STORAGEPORT
> > >
> > > It will give you back a MULTI_SZ that contains
> > names that
> > > won’t change for each device in the system that
> > exports that
> > > interface. Unfortunately, I don’t know just what
> > those are,
> > > and I don’t have time to find out.
> > >
> > > Phil
> > > –
> > > Philip D. Barila Windows DDK MVP
> > > Seagate Technology, LLC
> > > (720) 684-1842
> > > As if I need to say it: Not speaking for Seagate.
> > > E-mail address is pointed at a domain squatter.
> > Use reply-to instead.
> > >
> > >
> > >
> > > —
> > > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> xxxxx@windows.microsoft.com
> > To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@stratus.com To
> > unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> > xxxxx@yahoo.ca
> > To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
> ______________________________________________________
>

> Post your free ad now! http://personals.yahoo.ca
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

Original Question (GUID of HBA):
Fibre Channel HBAs have unique IDs - their World Wide Port Name - if
that’s what you are looking for. Windows has no built-in mechanism to
report this and the SNIA HBA API allows retrieving this value but is not
usable in kernel mode. There are several possible solutions:

  1. implement private ioctl calls specific to the HBA driver(s)
  2. use kernel WMI and use drivers that implement the MS version of the
    HBA API which uses WMI in the miniport drivers (several are available);
    the MOF can be found on the Windows Server 2003 DDK. Send mail to
    xxxxx@microsoft.com for more information.

Second Question (s/n):
(Only parts of SPC-3 are turgid ;). And at least it has a table of
contents.)

You would be better off not depending on the SPC-3 spec which is in
development. SPC-2 (http://www.t10.org/ftp/t10/drafts/spc2/spc2r20.pdf
is close enough) is a more appropriate source since it has been ratified
and some devices adhere to it after a fashion. I agree with Mark’s
assessment about VPD pages but note that while page 80 is pretty
reliable, not all vendors implement LUN-unique serial numbers. If you
need that, you have to slog through decoding page 83 device descriptors
and hope that the vendor used a descriptor type that really is unique -
types 3 & 2 are best - and also that the vendor followed the standard
since some don’t.

Jeff Goldner [MS]
This posting is provided “AS IS” with no warranties, and confers no
rights

-----Original Message-----
From: Roddy, Mark [mailto:xxxxx@stratus.com]
Sent: Tuesday, September 16, 2003 1:17 PM
Subject: Re: GUID of HBA

You should be able to fetch page 80 or 83 using an inquiry command (with
EVPD set) to get the serial number. While page 80 is optional and page
83 is
mandatory, it is been our experience that, at least with block devices,
you
have better luck with the ‘optional’ page 80. Technically you should
first
read page 0 to figure out which pages the device supports. See the
turgid
tome “SCSI Primary Commands - 3 (SPC-3)”.

=====================
Mark Roddy

-----Original Message-----
From: Michael Zhu [mailto:xxxxx@yahoo.ca]
Sent: Tuesday, September 16, 2003 3:38 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Re: GUID of HBA

Hi, Roddy, you said that the SCSI devices support
unique serial numbers. How can I get this unique
serial number for a specific SCSI device? And who sets
this unique serial number to that SCSI device? My
purpose is to uniquely identify a SCSI device. Is
there any other way to implement this?

Thanks all of you.

Michael

— “Roddy, Mark” wrote: >
> The OP might want to consider using what the HBA is
> > connected to in order to
> > indentify it, rather than a serial number on the
> > HBA, as there is no real
> > standard for HBA serial numbers. Some adapters might
> > have such a number in
> > their VPD, but it is not required. SCSI devices, on
> > the other hand, support
> > unique serial numbers. Of course if the HBA isn’t
> > connected to anything this
> > doesn’t help much :slight_smile:
> >
> >
> > =====================
> > Mark Roddy
> >
> >
> > > -----Original Message-----
> > > From: Doron Holan
> > [mailto:xxxxx@windows.microsoft.com]
> > > Sent: Tuesday, September 16, 2003 1:37 PM
> > > To: Windows System Software Devs Interest List
> > > Subject: [ntdev] Re: GUID of HBA
> > >
> > >
> > > If the controller moves to another slot and is
> > installed as a
> > > new device, the string for its device interface
> > will be
> > > different then the string from when it was in the
> > previous slot.
> > >
> > > D
> > >
> > > This posting is provided “AS IS” with no
> > warranties, and
> > > confers no rights
> > >
> > > -----Original Message-----
> > > From: xxxxx@lists.osr.com
> > > [mailto:xxxxx@lists.osr.com] On Behalf
> > Of Phil Barila
> > > Sent: Tuesday, September 16, 2003 10:28 AM
> > > To: Windows System Software Devs Interest List
> > > Subject: [ntdev] Re: GUID of HBA
> > >
> > > “Michael Zhu” wrote in message
> > news:xxxxx@ntdev…
> > > >
> > > > Hi, does anyone know there is some kind of
> > global
> > > > unique ID of a HBA card? Such like the global
> > unique
> > > > physical address of a NIC card. The reason I’d
> > like to
> > > > do this is in my upper HBA bus filter driver I
> > need to uniquely
> > > > identify each HBA. That means I need to identify
> > a specific
> > > HBA card
> > > > no matter system reboots or there is some other
> > HBA pluged in or
> > > > removed from the system. I know there is a
> > Port:Path:TargetID:LUN
> > > > method to identify the HBA. But this may change
> > if the
> > > > system configuration is changed. It depends on
> > how the
> > > > system enumerate the device.
> > >
> > > I’ve not tried this, but you might try
> > IoGetDeviceInterfaces
> > > on GUID_DEVINTERFACE_STORAGEPORT
> > >
> > > It will give you back a MULTI_SZ that contains
> > names that
> > > won’t change for each device in the system that
> > exports that
> > > interface. Unfortunately, I don’t know just what
> > those are,
> > > and I don’t have time to find out.
> > >
> > > Phil
> > > –
> > > Philip D. Barila Windows DDK MVP
> > > Seagate Technology, LLC
> > > (720) 684-1842
> > > As if I need to say it: Not speaking for Seagate.
> > > E-mail address is pointed at a domain squatter.
> > Use reply-to instead.
> > >
> > >
> > >
> > > —
> > > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> xxxxx@windows.microsoft.com
> > To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@stratus.com To
> > unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> > http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as:
> > xxxxx@yahoo.ca
> > To unsubscribe send a blank email to
> xxxxx@lists.osr.com
>
> ______________________________________________________
>

> Post your free ad now! http://personals.yahoo.ca
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to xxxxx@lists.osr.com

Michael,

you wrote on Tuesday, September 16, 2003, 03:52:07:

MZ> Hi, does anyone know there is some kind of global unique ID of a HBA
MZ> card? Such like the global unique physical address of a NIC card.

What about the PnP device ID? Take a look at the DevCon sample in the
DDK. I realize this won’t help if you have multiple adapters of the same
type in the system.

Ralf.