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>
This commit is contained in:
Aric Stewart 2016-09-21 13:38:21 +02:00 committed by Alexandre Julliard
parent 96930bdc04
commit b8ac3d7684
1 changed files with 13 additions and 0 deletions

View File

@ -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.@) * IoInvalidateDeviceRelations (NTOSKRNL.EXE.@)
*/ */
@ -3076,6 +3086,9 @@ void WINAPI IoInvalidateDeviceRelations( DEVICE_OBJECT *device_object, DEVICE_RE
case BusRelations: case BusRelations:
handle_bus_relations( device_object ); handle_bus_relations( device_object );
break; break;
case RemovalRelations:
handle_removal_relations( device_object );
break;
default: default:
FIXME( "unhandled relation %i\n", type ); FIXME( "unhandled relation %i\n", type );
break; break;