Activate serial device interface only at the very end of IRP_MN_START_DEVICE
authorHervé Poussineau <hpoussin@reactos.org>
Fri, 20 Jan 2006 17:41:59 +0000 (17:41 +0000)
committerHervé Poussineau <hpoussin@reactos.org>
Fri, 20 Jan 2006 17:41:59 +0000 (17:41 +0000)
svn path=/trunk/; revision=20954

reactos/drivers/dd/serial/pnp.c

index 6ca35ef..e1a9bcf 100644 (file)
@@ -242,15 +242,6 @@ SerialPnpStartDevice(
                return Status;
        }
 
                return Status;
        }
 
-       /* Activate serial interface */
-       Status = IoSetDeviceInterfaceState(&DeviceExtension->SerialInterfaceName, TRUE);
-       if (!NT_SUCCESS(Status))
-       {
-               DPRINT("Serial: IoSetDeviceInterfaceState() failed with status 0x%08x\n", Status);
-               IoDeleteSymbolicLink(&LinkName);
-               return Status;
-       }
-
        /* Connect interrupt and enable them */
        Status = IoConnectInterrupt(
                &DeviceExtension->Interrupt, SerialInterruptService,
        /* Connect interrupt and enable them */
        Status = IoConnectInterrupt(
                &DeviceExtension->Interrupt, SerialInterruptService,
@@ -289,6 +280,10 @@ SerialPnpStartDevice(
        DeviceExtension->MCR |= SR_MCR_DTR | SR_MCR_RTS;
        WRITE_PORT_UCHAR(SER_MCR(ComPortBase), DeviceExtension->MCR);
 
        DeviceExtension->MCR |= SR_MCR_DTR | SR_MCR_RTS;
        WRITE_PORT_UCHAR(SER_MCR(ComPortBase), DeviceExtension->MCR);
 
+       /* Activate serial interface */
+       IoSetDeviceInterfaceState(&DeviceExtension->SerialInterfaceName, TRUE);
+       /* We don't really care if the call succeeded or not... */
+
        return STATUS_SUCCESS;
 }
 
        return STATUS_SUCCESS;
 }