Microsoft KB Archive/152518

{|
 * width="100%"|

PRB: Tape Variable Blocksize Limited to 64K Bytes

 * }

Q152518

-

The information in this article applies to:


 * Microsoft Win32 Application Programming Interface (API), used with:
 * the operating system: Microsoft Windows NT, versions 3.51, 4.0
 * the operating system: Microsoft Windows 2000

-

SYMPTOMS
When using the Variable Blocksize technique of writing data to a tape device on Windows NT, block sizes may be limited to either 64K or 128K bytes.

CAUSE
SCSI Tape devices can only write to each tape block the number of bytes transferable over the SCSI Bus in a single I/O operation. Each Host Bus Adapter (HBA)-specific SCSI miniport driver specifies the maximum number of pages that the HBA can scatter/gather for the DMA transfer. Multiplying the page size times the number of scatter/gather entries will yield the effective limit to the number of bytes that can be transmitted in a single I/O operation.

On x86 Windows NT, PAGE_SIZE is 4K bytes and many popular SCSI HBAs (including Adaptec xx40) support a maximum of 16-17 pages, yielding a limit of 64K bytes transferred during a single I/O operation.

Some BusLogic HBAs support 31 scatter/gather entries yielding slightly less than 128K bytes per I/O.

STATUS
This behavior is by design.

Additional query words: 3.51 4.00

Keywords : kbAPI kbKernBase kbOSWin2000 kbTapeBackup kbDSupport kbGrpDSKernBase

Issue type : kbprb

Technology : kbAudDeveloper kbWin32sSearch kbWin32API