You have to replace DriverUnload after the call to PcInitializeAdapterDriver. I am doing this and in my case DriverUnload gets called Philip From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Tim Newsham Sent: Thursday, August 27, 2009 2:11 PM To: wdmaudiodev Subject: [wdmaudiodev] Re: DriverUnload and miniport On Thu, Aug 27, 2009 at 7:59 AM, Tim Newsham <tim.newsham@xxxxxxxxx> wrote: I have a driver using MiniPortWaveCyclic. After initializing the port driver (PcInitializeAdapterDriver) I stash a copy of driver->DriverUnload and overwrite it with my own unload handler. I set a watchpoint on the field and note that it never gets overwritten. However, when I unload my driver, I notice the subdevices I created getting removed by the port driver but my custom DriverUnload function is never executed. Why is driver->DriverUnload not getting called when my driver is unloaded? Btw, when I say "unload" I mean that I ran "devcon remove". -TimN