mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 21:03:00 +00:00
[UMPNPMGR] Partially implement ReenumerateDeviceInstance which is needed by the Lenovo T400 network driver installer
This commit is contained in:
parent
a91df23308
commit
9d26058a8e
2 changed files with 38 additions and 5 deletions
|
@ -1959,11 +1959,36 @@ DisableDeviceInstance(LPWSTR pszDeviceInstance)
|
||||||
|
|
||||||
|
|
||||||
static CONFIGRET
|
static CONFIGRET
|
||||||
ReenumerateDeviceInstance(LPWSTR pszDeviceInstance)
|
ReenumerateDeviceInstance(
|
||||||
|
_In_ LPWSTR pszDeviceInstance,
|
||||||
|
_In_ ULONG ulFlags)
|
||||||
{
|
{
|
||||||
DPRINT("ReenumerateDeviceInstance: not implemented\n");
|
PLUGPLAY_CONTROL_ENUMERATE_DEVICE_DATA EnumerateDeviceData;
|
||||||
/* FIXME */
|
CONFIGRET ret = CR_SUCCESS;
|
||||||
return CR_CALL_NOT_IMPLEMENTED;
|
NTSTATUS Status;
|
||||||
|
|
||||||
|
DPRINT1("ReenumerateDeviceInstance(%S 0x%08lx)\n",
|
||||||
|
pszDeviceInstance, ulFlags);
|
||||||
|
|
||||||
|
if (ulFlags & ~CM_REENUMERATE_BITS)
|
||||||
|
return CR_INVALID_FLAG;
|
||||||
|
|
||||||
|
if (ulFlags & CM_REENUMERATE_RETRY_INSTALLATION)
|
||||||
|
{
|
||||||
|
DPRINT1("CM_REENUMERATE_RETRY_INSTALLATION not implemented!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&EnumerateDeviceData.DeviceInstance,
|
||||||
|
pszDeviceInstance);
|
||||||
|
EnumerateDeviceData.Flags = 0;
|
||||||
|
|
||||||
|
Status = NtPlugPlayControl(PlugPlayControlEnumerateDevice,
|
||||||
|
&EnumerateDeviceData,
|
||||||
|
sizeof(PLUGPLAY_CONTROL_ENUMERATE_DEVICE_DATA));
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
ret = NtStatusToCrError(Status);
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2004,7 +2029,8 @@ PNP_DeviceInstanceAction(
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PNP_DEVINST_REENUMERATE:
|
case PNP_DEVINST_REENUMERATE:
|
||||||
ret = ReenumerateDeviceInstance(pszDeviceInstance1);
|
ret = ReenumerateDeviceInstance(pszDeviceInstance1,
|
||||||
|
ulFlags);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -445,6 +445,13 @@ typedef struct _PLUGPLAY_EVENT_BLOCK
|
||||||
// Plug and Play Control Classes
|
// Plug and Play Control Classes
|
||||||
//
|
//
|
||||||
|
|
||||||
|
// Class 0x00
|
||||||
|
typedef struct _PLUGPLAY_CONTROL_ENUMERATE_DEVICE_DATA
|
||||||
|
{
|
||||||
|
UNICODE_STRING DeviceInstance;
|
||||||
|
ULONG Flags;
|
||||||
|
} PLUGPLAY_CONTROL_ENUMERATE_DEVICE_DATA, *PPLUGPLAY_CONTROL_ENUMERATE_DEVICE_DATA;
|
||||||
|
|
||||||
//Class 0x09
|
//Class 0x09
|
||||||
typedef struct _PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA
|
typedef struct _PLUGPLAY_CONTROL_INTERFACE_DEVICE_LIST_DATA
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue