Regarding SCSI miniport driver in 64-bit

Discussion in 'Windows Vista Drivers' started by killme, May 11, 2006.

  1. killme

    killme Guest

    Hi All,

    I am trying to port a SCSI miniport driver for a virtual HBA that is working
    any problem in 32-bit to 64-bit. When I install the HBA (by plugging it to a
    bus which is created using toaster sample), the DriverEntry() is called
    by FindAdapter(). after that the driver is unloaded and the device manager
    the CM error code 10. (failed to start).

    The miniport driver is not using any resources. Following are the values I


    1. HwInterrupt(), HwDmaStarted() and HwAdapterState() are not used (set to
    NULL). Other functions are used.
    2. NeedPhysicalAddresses is set to FALSE.
    3. MapBuffers is set to TRUE.
    4. NumberOfAccessRanges is set to 0.
    5. TaggedQueuing is set to FALSE
    6. MultipleRequestsPerLu is set to FALSE.
    7. AutoRequestSense is set to FALSE.
    8. ReceiveEvent is set to FALSE.
    9. AdapterInterfaceType is set to Isa.

    One thing I noticed is that the ScsiPortInitialize() returns STATUS_SUCCESS..

    1. InterruptMode is set to LevelSensitive.
    2. CachesData is set to FALSE.
    3. MaximumNumberOfTargets = 6 (just for testing)
    4. BufferAccessScsiPortControlled = TRUE
    5. ScatterGather = FALSE
    6. MapBuffers = TRUE
    7. NeedPhysicalAddresses = FALSE
    8. TaggedQueuing = FALSE
    9. MultipleRequestsPerLu = FALSE
    10. AutoRequestSense = FALSE
    11. Master = FALSE.

    Actually After FindAdapter(), the IRP_MN_REMOVE_DEVICE is called for the
    adapter in the bus driver which unloads the driver. So, there should be some
    problem in FindAdapter() that causes this. But same code works fine in 32-bit
    without any problem.

    When I examined the event log, I got following error:

    Driver detected an internal error in its data structures for

    For more information, see Help and Support Center at

    0000: 00 00 00 00 01 00 56 00 ......V.
    0008: 00 00 00 00 04 00 04 c0 .......À
    0010: df fa ff ff bb 00 00 c0 ßúÿÿ»..À
    0018: 00 00 00 00 00 00 00 00 ........
    0020: 00 00 00 00 00 00 00 00 ........

    killme, May 11, 2006
    1. Advertisements

  2. killme

    killme Guest

    At last I found the problem. by debugging using the checked 64-bit build.
    Problem is that I have to report my miniport driver so that it is using
    system DMA. 64-bit windows expects like that.

    killme, May 24, 2006
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.