KdpSysReadIoSpace

NTSTATUS __stdcall KdpSysReadIoSpace(
        _INTERFACE_TYPE InterfaceType,
        UINT64 BusNumber,
        UINT64 AddressSpace,
        UINT64 Address,
        PVOID Buffer,
        UINT64 Request,
        UINT64 *Actual){
  NTSTATUS v7; 
  unsigned __int32 v8; 
  unsigned __int16 v9; 
  unsigned __int8 v10; 

  v7 = 0;
  if( InterfaceType == Isa && !(_DWORD)BusNumber && (_DWORD)AddressSpace == 1 )
  {
    switch( (_DWORD)Request )
    {
      case 1:
        v10 = __inbyte(Address);
        *(_BYTE *)Buffer = v10;
        *(_DWORD *)Actual = 1;
        return v7;
      case 2:
        if( (Address & 1) == 0 )
        {
          v9 = __inword(Address);
          *(_WORD *)Buffer = v9;
          *(_DWORD *)Actual = 2;
          return v7;
        }
        break;
      case 4:
        if( (Address & 3) == 0 )
        {
          v8 = __indword(Address);
          *(_DWORD *)Buffer = v8;
          *(_DWORD *)Actual = 4;
          return v7;
        }
        break;
      default:
        v7 = -1073741811;
        *(_DWORD *)Actual = 0;
        return v7;
    }
    return -2147483646;
  }
  *(_DWORD *)Actual = 0;
  return -1073741823;
}

Referenced by:

KdSystemDebugControl
KdpSendWaitContinue