When I use SetupDiGetDeviceRegistryProperty with SPDRP_LOCATION_INFORMATION I
get the string "Bus Number 0, Target Id 0, LUN 3". How do I get the port
number? Yhy is that information not returned for devices?

For non-iscsi (regular scsi devices) I have the same problem as above.
However I can get around it by using SPDRP_PHYSICAL_DEVICE_OBJECT_NAME. This
returns something like "\Device\Scsi\sym_u32Port5Path0Target5Lun0". I parse
this for port, path, target & lun. Unfortunately this solution fails
miserably for iscsi devices. For iscsi devices something like
"\Device\0000006f" or "\Device\00000070" is returned which makes absolutely
no sense to me!

My corresponding scsi & iscsi devices are located at

Port 5, Bus 0, Target Id 5, LUN 0 (scsi)
Port 7, Bus 0, Target Id 0, LUN 0 (iscsi)
Port 7, Bus 0, Target Id 0, LUN 3 (iscsi)

I find the documentation on setupdi apis & their usage examples incomplete.
For example it's unclear from the documentation & examples how to deal
with the above problem.

Thanks,