PRB: Tape Variable Blocksize Limited to 64K Bytes (152518)



The information in this article applies to:

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

This article was previously published under Q152518

SYMPTOMS

When using the Variable Blocksize technique of writing data to a tape device on Microsoft Windows NT, Windows 2000, Windows XP, 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, Windows 2000, or Windows XP, 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.

Modification Type:MajorLast Reviewed:4/9/2004
Keywords:kbAPI kbBackUp kbKernBase kbprb KB152518