Search code examples
cwindowswinapistorage

Change active partition of LTO tape


I've been trying to change the active partition of an LTO8 tape in Windows (7 & Server 2012 R2) using the following code snippet (which gcc compiles without any warnings):

DWORD partition= 2;

if(SetTapePosition(hTape, TAPE_LOGICAL_BLOCK, partition, 0, 0, FALSE) != NO_ERROR)
   <irrelevant error code here>

which returns without any errors. But it doesn't change the partition. I can use the same function and handle to seek to various blocks within the first (default) partition, so I don't think that's the problem.

The tape is definitely partitioned, and I have no problem changing to the second partition under linux using the mt command.


Solution

  • Turns out the issue is with Quantum's device driver; if I force load HP's device driver, I can change the active partition without any issue.