Windows Device Naming Conventions

Top  Previous  Next

With the advent of release 1.25, we believe we have introduced a better solution to problems unique to the Windows family operating systems and device naming conventions.  Specifically, the operating system does not always assign the same physical device name to a device on every boot-up, particularly with fibre channel disks on a SAN.  If you have devices such as SCSI processors (I.e., RAID controllers) or SES processors, it will assign a device such as \\.\SCSI2 to all devices on the same SCSI controller. The convention is only applicable to devices which use the SCSI interface, which would include fibre channel peripherals and SCSI processors and enclosures. The change was necessitated by Microsoft's new STORPORT drivers which have a slightly different mechanism for direct I/O.

 

What we have done is added a second naming convention for physical devices which should be much more constant between reboots and hot plugging and unplugging storage.  The program will still recognize device names such as \\.\PHYSICALDRIVE3 or \\.\SCSI2, and will work as before with those device names for compatibility purposes.  However, you can now address devices by a more descriptive name that ties the device name to the hardware paths, rather than some pseudo-randomly defined order based on when the O/S discovers a device.

 

The new device names take the format \\.\SCSIaPortbPathcTargetdLune where letters a,b,c,d, and e represent the hardware paths which tend to stay constant, even in a SAN environment were devices could be inserted or removed for the SAN at any time. The program will still support the older \\.\PHYSICALDRIVEn format if you care to use it, but the software will always default to the \\.\SCSI type format if you do not specifically put in a device path which instructs SMARTMonUX to scan for devices.

 

Determining Device Names

The best way to see both formats of device names for your peripherals is to enter smartmon-ux -I from the command line. By not supplying a list of devices, the software will scan for everything it can discover. By design, it also creates a scratch file, called FileList.txt which will be saved in the current directory.

 

On this machine, if we type out FileList.txt, we see ...

\\.\SCSI2Port2Path0Target4Lun0 path=0 port=2 id=4 lun=0 type=0 [SEAGATE ] [ST336753FC      ] [0002] \\.\SCSI2Port2Path0Target4Lun0

\\.\SCSI2Port2Path0Target5Lun0 path=0 port=2 id=5 lun=0 type=0 [SEAGATE ] [ST336605FC      ] [0003] \\.\SCSI2Port2Path0Target5Lun0

\\.\SCSI2Port2Path0Target6Lun0 path=0 port=2 id=6 lun=0 type=0 [SEAGATE ] [ST336753FC      ] [0002] \\.\SCSI2Port2Path0Target6Lun0

\\.\SCSI2Port2Path0Target16Lun0 path=0 port=2 id=16 lun=0 type=0 [SEAGATE ] [ST336605FC      ] [0003] \\.\SCSI2Port2Path0Target16Lun0

\\.\SCSI2Port2Path0Target18Lun0 path=0 port=2 id=18 lun=0 type=0 [SEAGATE ] [ST336605FC      ] [0003] \\.\SCSI2Port2Path0Target18Lun0

\\.\SCSI2Port2Path0Target19Lun0 path=0 port=2 id=19 lun=0 type=0 [SEAGATE ] [ST336605FC      ] [0003] \\.\SCSI2Port2Path0Target19Lun0

\\.\PHYSICALDRIVE1 path=0 port=2 id=4 lun=0 type=0 [SEAGATE ] [ST336753FC      ] [0002]

\\.\PHYSICALDRIVE2 path=0 port=2 id=5 lun=0 type=0 [SEAGATE ] [ST336605FC      ] [0003]

\\.\PHYSICALDRIVE3 path=0 port=2 id=6 lun=0 type=0 [SEAGATE ] [ST336753FC      ] [0002]

\\.\PHYSICALDRIVE4 path=0 port=2 id=16 lun=0 type=0 [SEAGATE ] [ST336605FC      ] [0003]

\\.\PHYSICALDRIVE5 path=0 port=2 id=18 lun=0 type=0 [SEAGATE ] [ST336605FC      ] [0003]

\\.\PHYSICALDRIVE6 path=0 port=2 id=19 lun=0 type=0 [SEAGATE ] [ST336605FC      ] [0003]

\\.\CDROM0 path=0 port=1 id=0 lun=0 type=5 [HL-DT-ST] [DVD-ROM GDR8081N] [0110]

 

By comparing the values for the path, port, id, and lun, we can see that \\.\PHYSICALDRIVE1 maps to the same device as \\.\SCSI2Port2Path0Target4Lun0. Therefore, both device driver names can be used interchangeably throughout the program.

 

However, we advise using the \\.\SCSI type device name format since this is tied to the physical path, where the \\.\PHYSICALDRIVE format is assigned by the O/S in whatever order it wants to. If you add another controller to your system, or add/remove a device, the \\.\PHYSICALDRIVE type driver may change for any or all of your peripherals.

 

Removing Duplicate Entries

SMARTMonUX will ALWAYS scan for devices when you invoke it, in order to provide support for both device names, and to insure that scripts that do not specify particular devices will not execute on the same device twice with both device names.  The default device name will always be the \\.\SCSI type device.