hidclass.sys: Update the interface state when a device is added or removed.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Aric Stewart <aric@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
8343099ff5
commit
91ac8eb00a
|
@ -32,6 +32,7 @@
|
|||
#include "wine/debug.h"
|
||||
#include "ddk/hidsdi.h"
|
||||
#include "ddk/hidtypes.h"
|
||||
#include "ddk/wdm.h"
|
||||
|
||||
#include "initguid.h"
|
||||
#include "devguid.h"
|
||||
|
@ -166,6 +167,8 @@ void HID_DeleteDevice(HID_MINIDRIVER_REGISTRATION *driver, DEVICE_OBJECT *device
|
|||
TRACE("Delete link %s\n", debugstr_w(ext->link_name));
|
||||
RtlInitUnicodeString(&linkW, ext->link_name);
|
||||
|
||||
IoSetDeviceInterfaceState(&linkW, FALSE);
|
||||
|
||||
status = IoDeleteSymbolicLink(&linkW);
|
||||
if (status != STATUS_SUCCESS)
|
||||
ERR("Delete Symbolic Link failed (%x)\n",status);
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <stdarg.h>
|
||||
#include "hid.h"
|
||||
#include "ddk/hidtypes.h"
|
||||
#include "ddk/wdm.h"
|
||||
#include "regstr.h"
|
||||
#include "wine/debug.h"
|
||||
#include "wine/unicode.h"
|
||||
|
@ -282,6 +283,17 @@ NTSTATUS WINAPI HID_PNP_Dispatch(DEVICE_OBJECT *device, IRP *irp)
|
|||
}
|
||||
break;
|
||||
}
|
||||
case IRP_MN_START_DEVICE:
|
||||
{
|
||||
BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
|
||||
UNICODE_STRING linkU;
|
||||
|
||||
rc = minidriver->PNPDispatch(device, irp);
|
||||
|
||||
RtlInitUnicodeString(&linkU, ext->link_name);
|
||||
IoSetDeviceInterfaceState(&linkU, TRUE);
|
||||
return rc;
|
||||
}
|
||||
case IRP_MN_REMOVE_DEVICE:
|
||||
{
|
||||
return PNP_RemoveDevice(minidriver, device, irp);
|
||||
|
|
Loading…
Reference in New Issue