diff --git a/reactos/drivers/input/i8042prt/i8042prt.c b/reactos/drivers/input/i8042prt/i8042prt.c index 2e610e2c87f..d3983a60760 100644 --- a/reactos/drivers/input/i8042prt/i8042prt.c +++ b/reactos/drivers/input/i8042prt/i8042prt.c @@ -723,6 +723,7 @@ static NTSTATUS STDCALL I8042AddDevice(PDRIVER_OBJECT DriverObject, PDEVICE_EXTENSION DevExt; PFDO_DEVICE_EXTENSION FdoDevExt; PDEVICE_OBJECT Fdo; + static BOOLEAN AlreadyInitialized = FALSE; DPRINT("I8042AddDevice\n"); @@ -733,6 +734,10 @@ static NTSTATUS STDCALL I8042AddDevice(PDRIVER_OBJECT DriverObject, return STATUS_UNSUCCESSFUL; } + if (AlreadyInitialized) + return STATUS_SUCCESS; + AlreadyInitialized = TRUE; + Status = IoCreateDevice(DriverObject, sizeof(DEVICE_EXTENSION), NULL, @@ -949,6 +954,7 @@ NTSTATUS STDCALL DriverEntry(PDRIVER_OBJECT DriverObject, DriverObject->DriverStartIo = I8042StartIo; DriverObject->DriverExtension->AddDevice = I8042AddDevice; + I8042AddDevice(DriverObject, NULL); return(STATUS_SUCCESS); }