Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


Re: I need Pnp guru advice: Win2000 refuses to unload my WDM driver!

OSR_Community_UserOSR_Community_User Member Posts: 110,217
Hello,

> It doesn't seem my other code is somehow leaving those 4 references
> because
> I can run through whole install/uninstall multiple times (with the never
> being unloaded of course) and the final DRIVER_OBJECT reference count is
> always 4.

I assume you have installed the unload function. I have had the same problems
with USB drivers. On the upper layer from USB driver I have some other drivers.

This drivers have a open instance in my USB driver.

When the USB driver receives a IRP_MN_REMOVE_DEVICE than all pending request
from upper layer driver must terminated with some good error code. The upper
layer driver must close immediatly the reference to the USB driver when a irp
is terminated with this error code.

Only when all references to a WDM driver are closed this driver is removed.

mathias

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    From: "Mathias Ellinger" <[email protected]>
    Sent: Tuesday, April 04, 2000 4:08 AM


    > Hello,
    >
    > > It doesn't seem my other code is somehow leaving those 4 references
    > > because
    > > I can run through whole install/uninstall multiple times (with the never
    > > being unloaded of course) and the final DRIVER_OBJECT reference count is
    > > always 4.
    >
    > I assume you have installed the unload function.

    Of course.

    > I have had the same problems
    > with USB drivers. On the upper layer from USB driver I have some other
    drivers.

    That's the thing, right now there is nothing more to my driver than
    responding to AddDevice() and the various PnP IRPs through
    IRP_MN_REMOVE_DEVICE.

    There are no layers above me. I don't even try to open the driver from
    user-mode. This is just a plain vanilla WDM PnP driver installed and
    removed via the Add/Remove Hardware Wizard. Except it won't unload.

    - Matt
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Internals & Software Drivers 7 February 2022 Live, Online
Kernel Debugging 21 March 2022 Live, Online
Developing Minifilters 23 May 2022 Live, Online
Writing WDF Drivers 12 September 2022 Live, Online