[sane-devel] Help decoding Minolta Dimage Scan Dual II USB protocol

Giovanni Cappellotto potomak84 at gmail.com
Wed Nov 23 14:03:36 GMT 2022


Hello,

In 2017 I used sane on Mac OS X to scan films using a Minolta Dimage Scan
Dual II. When I used sane again in 2020 it didn't work anymore. I tried to
contribute to the project to fix the backend for my scanner. I was able to
successfully scan a single frame at a time, but I lacked the knowledge to
completely fix the issue.

I ended up buying an old windows laptop that I'm using to interface with
the scanner. The scanner works fine with its original windows driver.

I wanted to hack a Python script to scan films using Minolta Dimage Scan
Dual II from a linux or mac PC, so I sniffed a scanning session using
usbsnoop.

Now I have a log of a scanning session, but I'm not sure how to read it.

Can you help me decode the protocol of this scanner from the usbsnoop log
please?

Excerpt:

[17011 ms] UsbSnoop - DispatchAny(acff6610) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[17011 ms] UsbSnoop - MyDispatchInternalIOCTL(acff7e80) : fdo=84d616a8,
Irp=8547f5e8, IRQL=0
[17011 ms]  >>>  URB 5 going down  >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 86d52634 [endpoint 0x00000001]
  TransferFlags        = 00000002 (USBD_TRANSFER_DIRECTION_OUT,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000000a
  TransferBuffer       = 00000000
  TransferBufferMDL    = 862f2ca0
    00000000: 28 00 60 00 0a 0d 00 00 10 00
  UrbLink              = 00000000
[17013 ms] UsbSnoop - MyInternalIOCTLCompletion(acff7db0) : fido=856662b8,
Irp=8547f5e8, Context=85ac8310, IRQL=2
[17013 ms]  <<<  URB 5 coming back  <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 86d52634 [endpoint 0x00000001]
  TransferFlags        = 00000002 (USBD_TRANSFER_DIRECTION_OUT,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 0000000a
  TransferBuffer       = 00000000
  TransferBufferMDL    = 862f2ca0
  UrbLink              = 00000000
[17015 ms] UsbSnoop - DispatchAny(acff6610) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[17015 ms] UsbSnoop - MyDispatchInternalIOCTL(acff7e80) : fdo=84d616a8,
Irp=8547f5e8, IRQL=0
[17015 ms]  >>>  URB 6 going down  >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 86d52674 [endpoint 0x00000083]
  TransferFlags        = 00000002 (USBD_TRANSFER_DIRECTION_OUT,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000040
  TransferBuffer       = 84d7d548
  TransferBufferMDL    = 00000000
    00000000: 00 00 00 00 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f
    00000010: 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f
    00000020: 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f
    00000030: 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f
  UrbLink              = 00000000
[17017 ms] UsbSnoop - MyInternalIOCTLCompletion(acff7db0) : fido=856662b8,
Irp=8547f5e8, Context=859bb540, IRQL=2
[17017 ms]  <<<  URB 6 coming back  <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 86d52674 [endpoint 0x00000083]
  TransferFlags        = 00000003 (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000010
  TransferBuffer       = 84d7d548
  TransferBufferMDL    = 84af1370
    00000000: 0a d2 01 1e 01 1f 00 00 00 00 ff 00 ff 00 ff 00
  UrbLink              = 00000000
[17017 ms] UsbSnoop - DispatchAny(acff6610) : IRP_MJ_INTERNAL_DEVICE_CONTROL
[17017 ms] UsbSnoop - MyDispatchInternalIOCTL(acff7e80) : fdo=84d616a8,
Irp=8547f5e8, IRQL=0
[17017 ms]  >>>  URB 7 going down  >>>
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 86d52654 [endpoint 0x00000082]
  TransferFlags        = 00000002 (USBD_TRANSFER_DIRECTION_OUT,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000008
  TransferBuffer       = 84b203c0
  TransferBufferMDL    = 00000000
    00000000: 00 00 00 00 00 00 00 00
  UrbLink              = 00000000
[17021 ms] UsbSnoop - MyInternalIOCTLCompletion(acff7db0) : fido=856662b8,
Irp=8547f5e8, Context=862f23b0, IRQL=2
[17021 ms]  <<<  URB 7 coming back  <<<
-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
  PipeHandle           = 86d52654 [endpoint 0x00000082]
  TransferFlags        = 00000003 (USBD_TRANSFER_DIRECTION_IN,
USBD_SHORT_TRANSFER_OK)
  TransferBufferLength = 00000001
  TransferBuffer       = 84b203c0
  TransferBufferMDL    = 862f2ca0
    00000000: 00
  UrbLink              = 00000000
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/sane-devel/attachments/20221123/4a866df1/attachment.htm>


More information about the sane-devel mailing list