[UMPNPMGR][USETUP] Use PlugPlayControlStartDevice in usetup and umpnpmgr

Instead of PlugPlayControlResetDevice, PlugPlayControlStartDevice should
be used for a newly installed device.
For usetup, add a device status check before starting attempt, so we're
not touching devices which are already started.

CORE-17463 CORE-17490
This commit is contained in:
Victor Perevertkin 2021-03-16 02:25:09 +03:00
parent 59a5dba443
commit abbc5ba45a
No known key found for this signature in database
GPG key ID: C750B7222E9C7830
2 changed files with 31 additions and 16 deletions

View file

@ -3081,17 +3081,14 @@ static CONFIGRET
EnableDeviceInstance(
_In_ LPWSTR pszDeviceInstance)
{
PLUGPLAY_CONTROL_DEVICE_CONTROL_DATA ResetDeviceData;
PLUGPLAY_CONTROL_DEVICE_CONTROL_DATA ControlData;
CONFIGRET ret = CR_SUCCESS;
NTSTATUS Status;
DPRINT("Enable device instance %S\n", pszDeviceInstance);
RtlInitUnicodeString(&ResetDeviceData.DeviceInstance,
pszDeviceInstance);
Status = NtPlugPlayControl(PlugPlayControlResetDevice,
&ResetDeviceData,
sizeof(PLUGPLAY_CONTROL_DEVICE_CONTROL_DATA));
RtlInitUnicodeString(&ControlData.DeviceInstance, pszDeviceInstance);
Status = NtPlugPlayControl(PlugPlayControlStartDevice, &ControlData, sizeof(ControlData));
if (!NT_SUCCESS(Status))
ret = NtStatusToCrError(Status);