mirror of
https://github.com/reactos/reactos.git
synced 2025-02-28 19:32:59 +00:00
[NTOS:KD64] Implement KdSystemDebugControl: SysDbgReadBusData/SysDbgWriteBusData
This commit is contained in:
parent
19046a253b
commit
2fe3de6c69
1 changed files with 60 additions and 0 deletions
|
@ -2509,7 +2509,67 @@ KdSystemDebugControl(
|
|||
break;
|
||||
|
||||
case SysDbgReadBusData:
|
||||
if (InputBufferLength != sizeof(SYSDBG_BUS_DATA))
|
||||
{
|
||||
Status = STATUS_INFO_LENGTH_MISMATCH;
|
||||
}
|
||||
else
|
||||
{
|
||||
SYSDBG_BUS_DATA Request = *(PSYSDBG_BUS_DATA)InputBuffer;
|
||||
PVOID LockedBuffer;
|
||||
PMDL LockVariable;
|
||||
|
||||
Status = ExLockUserBuffer(Request.Buffer,
|
||||
Request.Request,
|
||||
PreviousMode,
|
||||
IoWriteAccess,
|
||||
&LockedBuffer,
|
||||
&LockVariable);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
Status = KdpSysReadBusData(Request.BusDataType,
|
||||
Request.BusNumber,
|
||||
Request.SlotNumber,
|
||||
Request.Address,
|
||||
LockedBuffer,
|
||||
Request.Request,
|
||||
&Length);
|
||||
ExUnlockUserBuffer(LockVariable);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case SysDbgWriteBusData:
|
||||
if (InputBufferLength != sizeof(SYSDBG_BUS_DATA))
|
||||
{
|
||||
Status = STATUS_INFO_LENGTH_MISMATCH;
|
||||
}
|
||||
else
|
||||
{
|
||||
SYSDBG_BUS_DATA Request = *(PSYSDBG_BUS_DATA)InputBuffer;
|
||||
PVOID LockedBuffer;
|
||||
PMDL LockVariable;
|
||||
|
||||
Status = ExLockUserBuffer(Request.Buffer,
|
||||
Request.Request,
|
||||
PreviousMode,
|
||||
IoReadAccess,
|
||||
&LockedBuffer,
|
||||
&LockVariable);
|
||||
if (NT_SUCCESS(Status))
|
||||
{
|
||||
Status = KdpSysWriteBusData(Request.BusDataType,
|
||||
Request.BusNumber,
|
||||
Request.SlotNumber,
|
||||
Request.Address,
|
||||
LockedBuffer,
|
||||
Request.Request,
|
||||
&Length);
|
||||
ExUnlockUserBuffer(LockVariable);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case SysDbgCheckLowMemory:
|
||||
UNIMPLEMENTED;
|
||||
Status = STATUS_NOT_IMPLEMENTED;
|
||||
|
|
Loading…
Reference in a new issue