Module: wine Branch: master Commit: b8ac3d7684b9990974a60f4f2fcf06d88f9f94f5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b8ac3d7684b9990974a60f4f2f...
Author: Aric Stewart aric@codeweavers.com Date: Wed Sep 21 13:38:21 2016 +0200
ntoskrnl.exe: Implement removing plug and play devices.
Signed-off-by: Aric Stewart aric@codeweavers.com Signed-off-by: Sebastian Lackner sebastian@fds-team.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ntoskrnl.exe/ntoskrnl.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c index 93029a4..522facf 100644 --- a/dlls/ntoskrnl.exe/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/ntoskrnl.c @@ -3064,6 +3064,16 @@ static void handle_bus_relations( DEVICE_OBJECT *device ) }
+static void handle_removal_relations( DEVICE_OBJECT *device ) +{ + TRACE_(plugplay)( "(%p)\n", device ); + + send_power_irp( device, PowerDeviceD3 ); + send_pnp_irp( device, IRP_MN_SURPRISE_REMOVAL ); + send_pnp_irp( device, IRP_MN_REMOVE_DEVICE ); +} + + /*********************************************************************** * IoInvalidateDeviceRelations (NTOSKRNL.EXE.@) */ @@ -3076,6 +3086,9 @@ void WINAPI IoInvalidateDeviceRelations( DEVICE_OBJECT *device_object, DEVICE_RE case BusRelations: handle_bus_relations( device_object ); break; + case RemovalRelations: + handle_removal_relations( device_object ); + break; default: FIXME( "unhandled relation %i\n", type ); break;