mirror of
https://github.com/reactos/reactos.git
synced 2025-03-01 03:45:16 +00:00
[NTOS:KD64] Implement KdSystemDebugControl: SysDbgReadIoSpace/SysDbgWriteIoSpace
This commit is contained in:
parent
0589c178ba
commit
b187662f39
1 changed files with 60 additions and 0 deletions
|
@ -2423,7 +2423,67 @@ KdSystemDebugControl(
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SysDbgReadIoSpace:
|
case SysDbgReadIoSpace:
|
||||||
|
if (InputBufferLength != sizeof(SYSDBG_IO_SPACE))
|
||||||
|
{
|
||||||
|
Status = STATUS_INFO_LENGTH_MISMATCH;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SYSDBG_IO_SPACE Request = *(PSYSDBG_IO_SPACE)InputBuffer;
|
||||||
|
PVOID LockedBuffer;
|
||||||
|
PMDL LockVariable;
|
||||||
|
|
||||||
|
Status = ExLockUserBuffer(Request.Buffer,
|
||||||
|
Request.Request,
|
||||||
|
PreviousMode,
|
||||||
|
IoWriteAccess,
|
||||||
|
&LockedBuffer,
|
||||||
|
&LockVariable);
|
||||||
|
if (NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
Status = KdpSysReadIoSpace(Request.InterfaceType,
|
||||||
|
Request.BusNumber,
|
||||||
|
Request.AddressSpace,
|
||||||
|
Request.Address,
|
||||||
|
LockedBuffer,
|
||||||
|
Request.Request,
|
||||||
|
&Length);
|
||||||
|
ExUnlockUserBuffer(LockVariable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case SysDbgWriteIoSpace:
|
case SysDbgWriteIoSpace:
|
||||||
|
if (InputBufferLength != sizeof(SYSDBG_IO_SPACE))
|
||||||
|
{
|
||||||
|
Status = STATUS_INFO_LENGTH_MISMATCH;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SYSDBG_IO_SPACE Request = *(PSYSDBG_IO_SPACE)InputBuffer;
|
||||||
|
PVOID LockedBuffer;
|
||||||
|
PMDL LockVariable;
|
||||||
|
|
||||||
|
Status = ExLockUserBuffer(Request.Buffer,
|
||||||
|
Request.Request,
|
||||||
|
PreviousMode,
|
||||||
|
IoReadAccess,
|
||||||
|
&LockedBuffer,
|
||||||
|
&LockVariable);
|
||||||
|
if (NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
Status = KdpSysWriteIoSpace(Request.InterfaceType,
|
||||||
|
Request.BusNumber,
|
||||||
|
Request.AddressSpace,
|
||||||
|
Request.Address,
|
||||||
|
LockedBuffer,
|
||||||
|
Request.Request,
|
||||||
|
&Length);
|
||||||
|
ExUnlockUserBuffer(LockVariable);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case SysDbgReadMsr:
|
case SysDbgReadMsr:
|
||||||
case SysDbgWriteMsr:
|
case SysDbgWriteMsr:
|
||||||
case SysDbgReadBusData:
|
case SysDbgReadBusData:
|
||||||
|
|
Loading…
Reference in a new issue