From: Shao Miller Date: Mon, 3 Jan 2011 08:13:07 +0000 (-0500) Subject: [dummy] Handle PnP device removal X-Git-Url: http://git.etherboot.org/people/sha0/winvblock.git/commitdiff_plain/e3f1bb6b1d6d729696efbd5ef18433c15239439d?hp=d0e6d6354c036018ca20a46757a1280bb6c38614;ds=sidebyside [dummy] Handle PnP device removal --- diff --git a/src/winvblock/dummy.c b/src/winvblock/dummy.c index bd6e90f..caa694a 100644 --- a/src/winvblock/dummy.c +++ b/src/winvblock/dummy.c @@ -49,11 +49,20 @@ static NTSTATUS STDCALL WvDummyPnp( IN PIRP irp, IN UCHAR code ) { - if (code != IRP_MN_QUERY_ID) - return WvlIrpComplete(irp, 0, STATUS_NOT_SUPPORTED); + switch (code) { + case IRP_MN_QUERY_ID: + /* The WV_S_DEV_T extension points to the dummy IDs. */ + return WvDummyIds(irp, dev->ext); - /* The WV_S_DEV_T extension points to the dummy IDs. */ - return WvDummyIds(irp, dev->ext); + case IRP_MN_QUERY_REMOVE_DEVICE: + return WvlIrpComplete(irp, 0, STATUS_SUCCESS); + + case IRP_MN_REMOVE_DEVICE: + return WvlIrpComplete(irp, 0, WvlBusRemoveNode(&dev->BusNode)); + + default: + return WvlIrpComplete(irp, 0, STATUS_NOT_SUPPORTED); + } } typedef struct WV_ADD_DUMMY {