Hello,
I'm trying to write a c++/cli library around the IOCTL Win32 API to
manipulate my dell powervault 124t and its LTO drive (ibm ultrium-
td3).
I've no issue getting the handle to control those two devices and
issue some commands but when I do IOCTL_CHANGER_GET_PARAMETERS or
IOCTL_TAPE_GET_DRIVE_PARAMS, I don't get the information I would
expect.
For example when I execute IOCTL_CHANGER_GET_PARAMETERS, I get in the
GET_CHANGER_PARAMETERS structure, 1 for the FirstSlotNumber field and
16 for the NumberStorageElements field.
It doesn't look like an issue at first sight but FirstSlotNumber field
should have 0 as value instead of 1 because a
IOCTL_CHANGER_GET_ELEMENT_STATUS call on the element 16 with type
storage will fail (element doesn't exist or something like that). On
the other hand, the same call on the element 0 with storage type will
succeed. Am I missing something or I just have to deal with a dirty
hack in my library ?
With IOCTL_TAPE_GET_DRIVE_PARAMS, it's even funnier, I have a non zero
(true) value in the ECC field of the TAPE_GET_DRIVE_PARAMETERS which
means that ECC enabled but if I do a AND mask between featureslow
field and TAPE_DRIVE_ECC (as written in the msdn documentation) ECC is
not a supported feature. So who is right ?!? (according to the tape
drive specs, it should support ecc). Again, dirty hack ?!?
http://msdn.microsoft.com/en-us/library/ms803692.aspx
http://msdn.microsoft.com/en-us/library/ms804514.aspx
If you have any idea, don't hesitate.
Best Regards,
J. De Gyns.
|
|
0
|
|
|
|
Reply
|
Jean
|
12/15/2009 2:16:01 PM |
|