UMSS for win 98

From: Gil Mizrahi (gil_at_giant-steps.com)
Date: 06/20/04


Date: Sun, 20 Jun 2004 11:44:33 +0200

Hi,All:

 I used Microsoft release UMSS source code to develop our USB mass
storage driver for windows 98.
I found that When AEP_DEVICE_INQUIRY is received, I create IOP and submit
ILB request to
call my WDM driver.
Normally the ILB request will wait until my calldown complete routine is
complete, then I free the IOP.
But sometimes the ILB request will complete after calling my WDM driver(my
WDM driver don't issus complete).
When my calldown complete routine is complete, the system hang. Because the
IOP is free.

Does Anyone know what happen?

Gil

Source code:

    ((PISP)&IOPCreateISP)->ISP_func = ISP_CREATE_IOP;
    IOPCreateISP.ISP_IOP_size = IOPLength;
    IOPCreateISP.ISP_delta_to_ior = (ULONG)&(((pIOP)0L)->IOP_ior);
    IOPCreateISP.ISP_i_c_flags = ISP_M_FL_MUST_SUCCEED;

    // Call IOS
    ILBService(&IOPCreateISP);

    //
    // Build our I/O request
    //

    // Call IOS to fill in SG descriptors, etc.
    ILBCriteria(Iop);

    // Submit request to IOS
    ILBRequest(Iop, Dcb);

    // Free our IOP
    ((PISP)&AllocISP)->ISP_func = ISP_DEALLOC_MEM;
    ((PISP_mem_dealloc)&AllocISP)->ISP_mem_ptr_da = (ULONG)Iop;

((ILB_internal_request_func)(UMSSPDR_Ilb.ILB_service_rtn))((PISP)&AllocISP);



Relevant Pages

  • Re: Mirror Driver Architecture
    ... the various VNCs, which do exactly what you are asking, and come with ... we can't use them unless we publish our own source code (this is a commercial ... You are right, of course, any kind of programming in the kernel seems to be ... driver sample code - specifically DrvBitBlt and DrvCopyBits - for sending ...
    (microsoft.public.win32.programmer.kernel)
  • Re: protecting source code in 2.6
    ... > to distribute our driver as sum of source code and librabry/object code. ... > and the device interface module. ... The device interface module on the other ...
    (Linux-Kernel)
  • [RFC: 2.6 patch] remove the broken BLK_DEV_SWIM_IOP driver
    ... But if anyone wants to ever revive this driver, ... * Driver for the SWIM IOP ... One outstanding request may be queued at any given time (this is ...
    (Linux-Kernel)
  • [2.6 patch] remove the broken BLK_DEV_SWIM_IOP driver
    ... But if anyone wants to ever revive this driver, ... * Driver for the SWIM IOP ... One outstanding request may be queued at any given time (this is ...
    (Linux-Kernel)
  • [2.6 patch] remove the broken BLK_DEV_SWIM_IOP driver
    ... But if anyone wants to ever revive this driver, ... * Driver for the SWIM IOP ... One outstanding request may be queued at any given time (this is ...
    (Linux-Kernel)

Loading