mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[SERIAL] Fix Serial{Get,Clear}PerfStats() to become proper PKSYNCHRONIZE_ROUTINE routines and get rid of the related casts. Brought to you by Thomas Faber. CORE-11799 (#94)
This commit is contained in:
parent
9556390f8f
commit
56cc2ca115
1 changed files with 27 additions and 26 deletions
|
@ -158,36 +158,37 @@ SerialSetLineControl(
|
|||
return Status;
|
||||
}
|
||||
|
||||
static BOOLEAN
|
||||
SerialClearPerfStats(
|
||||
IN PSERIAL_DEVICE_EXTENSION DeviceExtension)
|
||||
static
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
SerialClearPerfStats(IN PVOID SynchronizeContext)
|
||||
{
|
||||
ASSERT(DeviceExtension);
|
||||
|
||||
RtlZeroMemory(&DeviceExtension->SerialPerfStats, sizeof(SERIALPERF_STATS));
|
||||
DeviceExtension->BreakInterruptErrorCount = 0;
|
||||
return TRUE;
|
||||
PSERIAL_DEVICE_EXTENSION DeviceExtension = SynchronizeContext;
|
||||
ASSERT(DeviceExtension);
|
||||
RtlZeroMemory(&DeviceExtension->SerialPerfStats, sizeof(SERIALPERF_STATS));
|
||||
DeviceExtension->BreakInterruptErrorCount = 0;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOLEAN
|
||||
SerialGetPerfStats(IN PIRP pIrp)
|
||||
static
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
SerialGetPerfStats(IN PVOID SynchronizeContext)
|
||||
{
|
||||
PSERIAL_DEVICE_EXTENSION pDeviceExtension;
|
||||
PIRP pIrp = SynchronizeContext;
|
||||
PSERIAL_DEVICE_EXTENSION pDeviceExtension;
|
||||
|
||||
ASSERT(pIrp);
|
||||
pDeviceExtension = (PSERIAL_DEVICE_EXTENSION)
|
||||
IoGetCurrentIrpStackLocation(pIrp)->DeviceObject->DeviceExtension;
|
||||
ASSERT(pIrp);
|
||||
pDeviceExtension = IoGetCurrentIrpStackLocation(pIrp)->DeviceObject->DeviceExtension;
|
||||
|
||||
/*
|
||||
* we assume buffer is big enough to hold SerialPerfStats structure
|
||||
* caller must verify this
|
||||
*/
|
||||
RtlCopyMemory(
|
||||
pIrp->AssociatedIrp.SystemBuffer,
|
||||
&pDeviceExtension->SerialPerfStats,
|
||||
sizeof(SERIALPERF_STATS)
|
||||
);
|
||||
return TRUE;
|
||||
/*
|
||||
* we assume buffer is big enough to hold SerialPerfStats structure
|
||||
* caller must verify this
|
||||
*/
|
||||
RtlCopyMemory(pIrp->AssociatedIrp.SystemBuffer,
|
||||
&pDeviceExtension->SerialPerfStats,
|
||||
sizeof(SERIALPERF_STATS));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static NTSTATUS
|
||||
|
@ -309,7 +310,7 @@ SerialDeviceControl(
|
|||
TRACE_(SERIAL, "IOCTL_SERIAL_CLEAR_STATS\n");
|
||||
KeSynchronizeExecution(
|
||||
DeviceExtension->Interrupt,
|
||||
(PKSYNCHRONIZE_ROUTINE)SerialClearPerfStats,
|
||||
SerialClearPerfStats,
|
||||
DeviceExtension);
|
||||
Status = STATUS_SUCCESS;
|
||||
break;
|
||||
|
@ -519,7 +520,7 @@ SerialDeviceControl(
|
|||
else
|
||||
{
|
||||
KeSynchronizeExecution(DeviceExtension->Interrupt,
|
||||
(PKSYNCHRONIZE_ROUTINE)SerialGetPerfStats, Irp);
|
||||
SerialGetPerfStats, Irp);
|
||||
Information = sizeof(SERIALPERF_STATS);
|
||||
Status = STATUS_SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue