
           QLogic SAN & Device Management Library for Windows

                           Version 1.27.15
                             02/21/03
Contents 
========

OS Support
Driver Requirement
Features
Library File
HBAAPI v1.0 Support Matrix
Release History

--------------------------------------------------------------------------------

OS Support 
==========

SAN & Device Management library works with Microsoft Windows operating systems
that are supported by the QLogic PCI Fibre Channel Scsi Miniport drivers.

--------------------------------------------------------------------------------

Driver Requirement 
==================

SAN & Device Management library requries QLogic PCI Fibre Channel Scsi Miniport
drivers of version v7.05.02 or higher.

--------------------------------------------------------------------------------

Feature
=======

*   SAN & Device Management library supports SNIA HBAAPI v1.0.

--------------------------------------------------------------------------------

Library File
============

*   HKLM\Software\SNIA\HBA\ql2x00

    contains the full path of the library file "%SystemRoot%\system32\qlsdm.dll"

--------------------------------------------------------------------------------

HBAAPI v1.0 Support Matrix
==========================

API				Support	Notes
---				-------	-----

HBA_GetVersion			Yes
HBA_LoadLibrary			Yes
HBA_FreeLibrary			Yes
HBA_RegisterLibrary		Yes
HBA_GetNumberOfAdapters		Yes
HBA_GetAdapterName		Yes
HBA_OpenAdapter			Yes
HBA_CloseAdapter		Yes
HBA_GetAdapterAttributes	Yes
HBA_GetAdapterPortAttributes	Yes
HBA_GetPortStatistics		Yes
HBA_GetDiscoveredPortAttributes	Yes
HBA_GetPortAttributesByWWN	Yes
HBA_SendCTPassThru		Yes
HBA_RefreshInformation		Yes
HBA_ResetStatistics		Yes
HBA_GetFcpTargetMapping		Yes
HBA_GetFcpPersistentBinding	No
HBA_GetEventBuffer		Yes	Link up/down, lip & rscn
HBA_SetRNIDMgmtInfo		Yes
HBA_GetRNIDMgmtInfo		Yes
HBA_SendRNID			Yes	Only data format DF is supported
HBA_SendScsiInquiry		Yes
HBA_SendReportLUNs		Yes
HBA_SendReadCapacity		Yes

AdapterAttributes		Support	Notes
-----------------		-------	-----

Manufacturer			Yes
Serial Number			Yes
Model				Yes
Model Description		Yes
Node WWN			Yes
Node Symbolic Name		No
Hardware Version		No	Vendor specific
Driver Version			Yes
Option ROM Version		Yes
Firmware Version		Yes
Vendor Specific ID		No
Number Of Ports			Yes
Driver Name			Yes

AdapterPortAttributes		Support	Notes
---------------------		-------	-----

Node WWN			Yes
Port WWN			Yes
Port Symbolic Name		No
Port FcId			Yes
Port Type			Yes
Port State			Yes
Supported Class of Service	Yes
Supported Fc4Types		Yes
Active Fc4Types			Yes
Port Supported Speed		Yes
Port Speed			Yes
Port Max Frame Size		Yes
OS Device Name			Yes
Number of Discovered Ports	Yes
Fabric Name			No

DiscoveredPortAttributes	Support	Notes
------------------------	-------	-----

Node WWN			Yes
Port WWN			Yes
Port Symbolic Name		No
Port FcId			Yes
Port Type			No
Port State			No
Supported Class of Service	No
Port Supported Fc4Types		No
Port Active Fc4Types		No
Port Supported Speed		No	Not applicable
Port Speed			No	Not applicable
Port Max Frame Size		No	Not applicable
OS Device Name			Yes
Number of Discovered Ports	No	Not applicable
Fabric Name			No	Not applicable

PortStatistics			Support	Notes
--------------			-------	-----

Seconds Since Statistics Reset	No	No OS support
TxFrames			No
RxFrames			No
TxWords				No
RxWords				No
LIPCount			No
NOSCount			No
ErrorFrames			No
DumpedFrames			No
LinkFailureCount		Yes
LossOfSyncCount			Yes
LossOfSignalCount		Yes
PrimitiveSeqProtocolErrCount	Yes
InvalidTxWordCount		Yes
InvalidCRCCount			Yes

--------------------------------------------------------------------------------

Release History 
===============

1.00 Beta - 2/17/2000
	This is an initial beta release of the SAN & Device Management SDK.

1.01 Beta - 2/28/2000
	Added SDSendScsiReadCapacityCmd().

1.02 Beta - 3/09/2000
	Modified SDSendScsiInquiryCmd() to return standard INQUIRY data format.

1.03 Beta - 3/13/2000
	Modified SDSendScsiInquiryCmd() to return the complete 256 bytes INQUIRY data.
	Added SDSendCTPassThru() for Management Server and Simple Name Server.

1.04 Beta - 3/22/2000
	Added pSenseBuffer and SenseBufferSize arguments to SDSendScsiInquiryCmd()
		and SDSendScsiReadCapacityCmd().  These two arguments have been added for
		future enhancements.
	Added SDSendElsRnid(), SDSetMgmtAddress(), SDGetMgmtAddress().  These routines
		require version 7.4.5 or above driver. 
	Changes variable names to not follow Hungarian notation.
	Removed the letter Q in front of macros for not being QLogic's specific. 

1.05 Beta - 4/6/2000
	Changed PortId field in mutiple structures from being 4 bytes to 3 bytes.
	Fixed SDGetHbaDevicePortProperty() to report correct number of devices upon
		configuration changes.
	Changed documentation to mention that RNID/RTIN/MS/NS is not supported by ISP2100.
	Added SDSendScsiPassThru().

1.06 Beta - 4/20/2000
	Added SDEnableAen(), SDDisableAen(), SDGetAen().  These routines
		require version 7.4.5 or above driver. 

1.07 Beta - 6/16/2000
	Fixed SDSendScsiPassThru() to return complete sense data.
	Added SDEnableDebugTrace() for debugging purposes.
	Added platform support.
	Added SDMAPI.doc.
	Added SDSendScsiReportLunsCmd().
	 
1.08 Beta - 8/11/2000
	Changed library data types (i.e. UINT8 to SD_UINT8), applications need to be recompiled.
	Added SDMapScsiTargetToVolumes() and SDMapVolumeToScsiTarget().
	Added SDMSGetPlatformNameList().
	Added HBA Common API support.
	Added Fabric Zone support.
	Removed QSDMGT.DOC.

1.09 Beta - 8/31/2000
	Changed library name from QSDMGT.DLL and QSDMGT.LIB to QLSDM.DLL and QLSDM.LIB.
	Added HBALoadLibrary() and HBAFreeLibrary() according to SNIA HBA API 1.0A.
	Modified SDSendScsiReportLunsCmd() to return correct information when using JBOD.
	Added copyright notice to sample source.

1.10 Beta - 9/20/2000
	Changed BusNumber, TargetID and LUN in TARGETINFORMATION structure to 16 bits,
		applications need to be recompiled.
	Changed HBASendScsiInquiry() to support SNIA HBA API 1.0.

1.13 Beta - 10/19/2000
	Added support for some minor driver's changes.
	Changed HBA API's OSDeviceName from \\.\scsiX: to \Device\ScsiPortX.
		SDSendScsiReportLunsCmd() will return SDMGT_API_BUILT_DATA if
		the actual ReportLuns command failed.  The API simulates the
		actual ReportLuns command by query all connected devices.
	Added DeviceName to DEVICEPORTPROPERTY.
	Fixed problem with not returning Sense Data information on check condition.

1.14 Beta - 12/13/2000
	Changed BusNumber and TargetID in DISCPORTPROPERTY and DISCTARGETPROPERTY structure
		to 16 bits, applications need to be recompiled.
	Changed HBA Common API's PortType, PortState and PortSpeed to Unknown for
		discovered port attributes.
	Changed HBA Common API's PortFcId to use the lower 24 bits instead of upper 24 bits.
	Set HBA Common API's invalid statistic fields to unsigned integer of all 1 according
		to the documentation.

1.15 Beta - 2/2/2001
	Changed HBA Common API:
		HBAGetAdapterPortAttributes() to return correct PortType.
		HBAGetAdapterPortAttributes() to return OSDeviceName in format "\\.\scsiX".
		HBAGetAdapterPortAttributes() to return different value for DeviceNodeProp
			and DevicePortProp.
		HBAGetDiscoveredPortAttributes() to return "" for OSDeviceName.
		HBAGetFcpTargetMapping() and HBAGetFcpPersistentBinding() to return "" for OSDeviceName.
	Fixed GetIEWWNAttachedPortNameList() to accommodate 0 for the number of attached port
		entries.

1.16 - 3/12/2001
	Added in thread-safe protection for opening devices.

	Changed HBA Common API:
		Changed all PortFcId fields to use the lower 24 bits.  Byte 0 is reserved
		and the last 3 bytes is the Fibre Channel Port ID.
		
1.17 - 3/19/2001
	Added DLL version resource.

1.18 - 3/21/2001
	Changed HBA Common API:
		Modified HBAGetAdapterPortAttributes() to return mode as HBA_PORTTYPE_NPORT
		or HBA_PORTTYPE_NLPORT.

1.19 - 3/28/2001
	The FC ID bits were swapped to little endian format.

1.20 - 4/09/2001
	Added support for some minor driver's changes.

1.21 - 4/27/2001
	Not disable the event collection until all registered applications deregister.
	Fixed test program for not crashing on "Device Update" event.

1.22 - 5/04/2001
	Change algorithm for finding serial number; not to display 'X' as
	the first letter on 2202 (2 ports board).
	Do bytes swapping in HBASetRNIDMgmtInfo() and HBAGetRNIDMgmtInfo() for fields
	in HBA_MGMTINFO data structure.
	Fix HBAGetRNIDMgmtInfo() to work with HBA_MGMTINFO data structure.  The first field
	of this data structure is currently 8 bytes and the standard format is 16 bytes.

1.23 - 7/27/2001
	Removed Management Server/Simple Name Server/Fabric Zone routines.
	Simplify sample code.	
        Modified script file to copy the DLL to the system directory.
        Compiling option modified to enable _QLBUILD.

1.25Beta1 -10/8/2001
        Modified code to intepret FCLun in proper format for SCSI calls.
        Removed Hardware type checking in OpenAdapter
        Modified hbaapi.h to conditionally add a new API HBA_GetVendorLibraryAttributes()

1.25Beta2 -10/25/2001
	Fixed problem with display of version information.Avoided multiple references of
	the version number.
	Modified Code to incorporate mapping information for all LUNs in the function
	GetFCPTargetMapping ().
	Obtained the OS device name in the function GetFCPTargetMapping().
	Modified the code to incorporate RSCN information in the function GetEventBuffer().
	Replaced hardcoded values in the functions HBAGetAdapterPortAttributes()
	and DiscoverPortAttributes ().Some values are obtained from the driver which 
	were previously hardcoded.

1.26Beta2 -10/25/2001
        Conditional compilation to include new API GetVendorLibraryAttributes().


1.25Beta3 -11/02/2001
        Modified Function HBAGetAdapterAttributes() to get Hardware Version information.

1.26Beta3 -11/02/2001
        Conditional compilation to include new API GetVendorLibraryAttributes().

1.25Beta4 -11/07/2001
        Modified the Install shield script files to copy the DLL in the Windows system32
        directory.
        Modified sample code.
        Modified the function HBAGetAdapterPortAttributes() to check for driver version,
        based on which FC Types and port speed details are filled.

1.26Beta4 -11/07/2001
        Conditional compilation to include new API GetVendorLibraryAttributes().
 	     
1.25 -12/14/2001
        Fixed multiclient problems.
        Fixed PortSpeed and SupportedPortSpeed for 2100 adapter.
        Modified InstallShield script file to copy qlsdm.dll only in system32 directory.
        Temporarily disabled new internal IOCTL loopback test.

1.26 -12/14/2001
        Conditional compilation to include new API GetVendorLibraryAttributes().

1.27.02 -02/19/2002
        Conditional compilation to include new API GetVendorLibraryAttributes().

1.27.03 -04/10/02
        Close 94945: OSDeviceName field is empty for many mappings.

1.27.04 -05/03/2002
        Made changes to HBAGetFcpTargetMapping() routine to fix the memory corruption
	problem.

1.27.05 -05/09/2002
	Closed 92366 issue relating memory heap corruption when application makes a
	call to HBAGetFcpTargetMapping() on W2K/NT4.

1.27.05 -O5/09/2002
	Made changes to SDSendScsiPassThru and SDSendScsiPassThruFC where the
	direction is set to DATA_IN only when there is a  data tranfer(READ) instead
	of setting the direction to DATA_IN whether there is data transfer(READ) or not

1.27.06 -O6/04/2002
        Released QSDMGT 1.27.06

1.27.08 -09/10/2002

        Fixed the Mappings Skipped issue.
        Fixed ScsiOSLun is not in LSB issue.
        Added support for tape device in MapDevice().
        Released QSDMGT 1.27.08
                             
1.27.10 -09/25/02
        Add Support for Medium Changer devices in HBAGetFcpTargetMapping().

1.27.12 -12/11/02
        Close Er22056(15-86-3) Information for all devices are returned by HBA_GETFcpTargetMapping()

1.27.15 -02/21/03
        Close Er23415: Missing display HBA information in OV SAM v3.0.



--------------------------------------------------------------------------------

      Copyright (c) 2000-2003 QLogic Corporation. All rights reserved. 
