mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 21:45:41 +00:00
Fail start of the serial port currently used for debugging, according to http://blogs.msdn.com/doronh/archive/2006/06/07/621604.aspx
svn path=/trunk/; revision=22516
This commit is contained in:
parent
6c6b0189cf
commit
e57648e8e2
3 changed files with 9 additions and 16 deletions
|
@ -193,6 +193,13 @@ SerialPnpStartDevice(
|
|||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
ComPortBase = (PUCHAR)DeviceExtension->BaseAddress;
|
||||
|
||||
/* Test if we are trying to start the serial port used for debugging */
|
||||
if (KdComPortInUse && *KdComPortInUse == ULongToPtr(DeviceExtension->BaseAddress))
|
||||
{
|
||||
DPRINT("Failing IRP_MN_START_DEVICE as this serial port is used for debugging\n");
|
||||
return STATUS_INSUFFICIENT_RESOURCES;
|
||||
}
|
||||
|
||||
if (DeviceExtension->UartType == UartUnknown)
|
||||
DeviceExtension->UartType = SerialDetectUartType(ComPortBase);
|
||||
|
||||
|
@ -329,7 +336,6 @@ SerialPnp(
|
|||
*/
|
||||
case IRP_MN_START_DEVICE: /* 0x0 */
|
||||
{
|
||||
BOOLEAN ConflictDetected;
|
||||
DPRINT("Serial: IRP_MJ_PNP / IRP_MN_START_DEVICE\n");
|
||||
|
||||
ASSERT(((PSERIAL_DEVICE_EXTENSION)DeviceObject->DeviceExtension)->PnpState == dsStopped);
|
||||
|
@ -344,20 +350,6 @@ SerialPnp(
|
|||
Status = STATUS_INSUFFICIENT_RESOURCES;
|
||||
break;
|
||||
}
|
||||
/* FIXME: HACK: verify that we don't have resource conflict,
|
||||
* because PnP manager doesn't do it automatically
|
||||
*/
|
||||
Status = IoReportResourceForDetection(
|
||||
DeviceObject->DriverObject, Stack->Parameters.StartDevice.AllocatedResources, 0,
|
||||
NULL, NULL, 0,
|
||||
&ConflictDetected);
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
Irp->IoStatus.Information = 0;
|
||||
Irp->IoStatus.Status = Status;
|
||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||
return Status;
|
||||
}
|
||||
|
||||
/* Call lower driver */
|
||||
Status = ForwardIrpAndWait(DeviceObject, Irp);
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
*/
|
||||
|
||||
#include <ntddk.h>
|
||||
#include <ndk/haltypes.h>
|
||||
#include <ntddser.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
|
|
@ -144,7 +144,7 @@ extern HAL_PRIVATE_DISPATCH HalPrivateDispatchTable;
|
|||
// HAL Exports
|
||||
//
|
||||
#ifndef _NTHAL_
|
||||
extern PUCHAR *KdComPortInUse;
|
||||
extern PUCHAR NTSYSAPI *KdComPortInUse;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue