mirror of
https://github.com/reactos/reactos.git
synced 2025-06-25 16:39:43 +00:00
[PORTCLS]
- Return status code of operation - Cancel all irps when pin state is set to stop. Fixes ReactOS portcls regression under WindowsXP - Handle IRP_MN_READ_CONFIG svn path=/trunk/; revision=44758
This commit is contained in:
parent
122dbfc23f
commit
1015293df7
2 changed files with 9 additions and 1 deletions
|
@ -141,6 +141,10 @@ PortClsPnp(
|
||||||
DPRINT("IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
|
DPRINT("IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
|
||||||
Status = PcForwardIrpSynchronous(DeviceObject, Irp);
|
Status = PcForwardIrpSynchronous(DeviceObject, Irp);
|
||||||
return PcCompleteIrp(DeviceObject, Irp, Status);
|
return PcCompleteIrp(DeviceObject, Irp, Status);
|
||||||
|
case IRP_MN_READ_CONFIG:
|
||||||
|
DPRINT("IRP_MN_READ_CONFIG\n");
|
||||||
|
Status = PcForwardIrpSynchronous(DeviceObject, Irp);
|
||||||
|
return PcCompleteIrp(DeviceObject, Irp, Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
DPRINT("unhandled function %u\n", IoStack->MinorFunction);
|
DPRINT("unhandled function %u\n", IoStack->MinorFunction);
|
||||||
|
|
|
@ -451,9 +451,14 @@ PinWaveCyclicState(
|
||||||
// complete with successful state
|
// complete with successful state
|
||||||
Pin->m_IrpQueue->CancelBuffers();
|
Pin->m_IrpQueue->CancelBuffers();
|
||||||
}
|
}
|
||||||
|
else if (Pin->m_State == KSSTATE_STOP)
|
||||||
|
{
|
||||||
|
Pin->m_IrpQueue->CancelBuffers();
|
||||||
|
}
|
||||||
// store result
|
// store result
|
||||||
Irp->IoStatus.Information = sizeof(KSSTATE);
|
Irp->IoStatus.Information = sizeof(KSSTATE);
|
||||||
}
|
}
|
||||||
|
return Status;
|
||||||
}
|
}
|
||||||
else if (Request->Flags & KSPROPERTY_TYPE_GET)
|
else if (Request->Flags & KSPROPERTY_TYPE_GET)
|
||||||
{
|
{
|
||||||
|
@ -848,7 +853,6 @@ CPortPinWaveCyclic::DeviceIoControl(
|
||||||
}
|
}
|
||||||
else if (IoStack->Parameters.DeviceIoControl.IoControlCode == IOCTL_KS_RESET_STATE)
|
else if (IoStack->Parameters.DeviceIoControl.IoControlCode == IOCTL_KS_RESET_STATE)
|
||||||
{
|
{
|
||||||
/// FIXME
|
|
||||||
Status = KsAcquireResetValue(Irp, &ResetValue);
|
Status = KsAcquireResetValue(Irp, &ResetValue);
|
||||||
DPRINT("Status %x Value %u\n", Status, ResetValue);
|
DPRINT("Status %x Value %u\n", Status, ResetValue);
|
||||||
/* check for success */
|
/* check for success */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue