scsiplus.jpg (5409 bytes)

SCSI++ Frequently Asked Questions

Q. Are there any royalties for distribution of applications using SCSI++?

A.  No.  SCSI++ is sold with a one time license fee (per developer) which uses it.  The resulting application is free of any royalties.

Q. Do I get Source Code?

A. No.  The Source Code license is a separate product, which requires a separate license agreement.

Q. How do I order?  

A.  Have your company send us a Purchase Order (with approved credit), or order it over the Web.

Q. Is there sample Source Code?  

A.  The SCSI++ release includes several sample MFC projects with source code that demonstrates SCSI++ functionality.  Samples include initialization, finding a device, multithreading, verification of media, and managing a jukebox.

The SCSI++ Win32 release includes a sample which demonstrates a console application, and a sample that demonstrates burning a CD from an ISO image file

Q. Does it work with Borland C++ Builder?  

A.  Not at this time.  SCSI++ is built for MFC console or GUI applications. A Win32 version is available, which does not use MFC.

Q. Is SCSI++ an OCX or a DLL?  

A. SCSI++ does not offer COM support in version 3.0. SCSI++ is a set of DLL's which provide the SCSI++ class support.  Which DLL is uses is dependent on the target operating system's SCSI Support. 

Q. Can SCSI++ be used to write CD-R's?  

A. Yes of course.  We sell a product, CD Composer which uses SCSI++ to write CD-R's.  There is a sample application which demonstrates how to burn and ISO image onto a CD. SCSI++ provides the low level functionality to achieve Disc at Once , Track at Once or Packet Writing.  However we recommend the CD Recording SDK for hard core CD Recording applications

Q. How does SCSI++ communicate with SCSI Devices?  

A. SCSI++ does not talk directory to the SCSI Host Adapter hardware.  SCSI++ talks to the operating systems port Driver, or miniport driver to send commands to the SCSI Device.

Q. Can SCSI++ be used to writing applications controlling ULTRA 3 160/320 SCSI Controllers?  

A. Yes, if the host adapter has a miniport driver.

Q. Can SCSI++ be used to writing applications controlling Fibre Channel Controllers?  

A. Yes, if the host adapter has a miniport driver.

Q. Our SCSI devices are managed by a SCSI RAID controller.  They are dynamic disks in Windows 2000, and are not viewable via My Computer.  Can SCSI++ communicate with these disk?  

A. Yes, SCSI++ works the via Host Adapter layer, not the OS block device layer.

Q. Do I have to know about CDBs (SCSI Command Descriptor Blocks) to use SCSI++?

A. If you are sending commands defined in the SCSI-2 specification, member functions implement every command defined.  So the answer is no, you can forget about CDBs.  If you want to send OEM private commands you can construct CDBs.  It is rather easy to do, and a sample demonstrates how to do it.

Q. Can I use SCSI++ for an application involving frequent sequential disk I/O's with large block transfer of data (~ 1 MB)? or does  one need to take care of splitting the data transfer size to maxTransferLength() or maxDmaTransferSize()?

A. Some customers do this, but we don't recommend it.  

The trick is this: you have to allocate a large cBuffer which happens to be map able into less than 16 chunks of contiguous physical memory.   (This is the usual number of DMA Scatter-Gather registers on a typical SCSI Host adapter; the reason for the usual 64k limit is 16 registers * 4k per OS page).  There is not a way to guarantee that this happens.  However some Host adapters have many more map registers and can handle this.  Your mileage may vary. It usually works if you allocate a single buffer upfront, and reuse it.