在WindowsXP等NT内核的操作系统中,#include "conio.h"中定义的端口读写函数_inp,_outp已经不能直接使用了,这是因为Window的保护模式不允许对IO直接进行直接操作。但是在工业控制领域,对IO的读写是最基本的操作,尤其是对ISA总线或并口这类固定地址的存储设备的访问,我们必须能够高效的进行IO读写来进行数据采集。

这里给出的解决方案是使用http://www.internals.com/提供的解决方案,即使用其网站上的WinIO.dll。其关键在与InitializeWinIo()函数调用之后,_inp,_outp函数可以被成功调用,在使用结束后再调用ShutdownWinIo()即可。

需要注意的是在程序运行的目录下必须要有Wio.dll,Wio.sys和Wio.vxd。也就是说我们调用WinIO库来实现IO读写实质上是在调用一个驱动,只有驱动级别的可执行文件才能解除保护模式(可能是进入了内核模式),实现对IO的直接读写。

使用WinIO库实现保护模式下的IO和内存读写(_inp,_outp)相关推荐

  1. 使用WinIO库实现保护模式下的IO和内存读写

    问题已解决: 原因是函数的调用方式与WinIO中不一致,使用的时候漏掉了__stdcall. 函数原定义为: 在实际的GPIO读写中遇到以下问题: SetPortVal可正常写入,但是GetPortV ...

  2. 保护模式下寻址(易懂)

    网上看到的一强帖,不转不行了,牛人啊,把这段代码拿捏的相当到位 括号中是我的加注 段机制轻松体验 [内存寻址] 实模式下的内存寻址: 让我们首先来回顾实模式下的寻址方式 段首地址×16+偏移量 = 物 ...

  3. 【OS学习笔记】二十三 保护模式七:保护模式下任务的隔离与任务的特权级概念

    上一篇文章学习了保护模式下操作系统内核如何加载程序并运行:点击链接查看上一篇文章 本篇文章接着上一篇文章学习保护模式下任务的隔离. 包括以下学习内容: 任务的全局空间和局部空间 任务的TSS 任务的L ...

  4. ASM:《X86汇编语言-从实模式到保护模式》第14章:保护模式下的特权保护和任务概述...

    ★PART1:32位保护模式下任务的隔离和特权级保护  这一章是全书的重点之一,这一张必须要理解特权级(包括CPL,RPL和DPL的含义)是什么,调用门的使用,还有LDT和TSS的工作原理(15章着重 ...

  5. 保护模式下中断或异常示意图

    保护模式下中断或异常示意图 转载于:https://www.cnblogs.com/LoveFishC/archive/2012/08/24/3845741.html

  6. 实地址模式与保护模式下的中断与异常处理

    在中断和异常的处理过程中,很重要的一件事是如何识别中断源,获取中断服务子程序的入口地址.在80486 CPU系统中,因为CPU的工作模式不同而获取中断向量的方式有所不同,本节讨论CPU工作在实地址模式 ...

  7. bios x86保护模式下的软盘操作floppy

    Cpu启动时,如果在bios中设置了从软盘启动,则bios会自动把软盘的第一个扇区(512字节)搬移到0x7c00,然后会从0x7c00开始运行,我们需要在这512字节的程序中实现把boot从软盘中搬 ...

  8. IA-32 Intel手册学习笔记(二)保护模式下的内存管理

    内存管理概述(Memory Management Overview) Inter体系结构的内存管理可分为两部分:分段和分页. 分段提供了一种机制,这种机制可以为每个程序或者任务提供单独的代码.数据和栈 ...

  9. MIT-JOS系列1:实模式和保护模式下的段寻址方式

    实模式下的段寻址 以8086为例 8086 段寄存器16位(段地址/基地址),寄存器16位(偏移地址),地址总线20位(寻址1M:2^20) 实际物理地址 = (段寄存器 << 4) + ...

最新文章

  1. CUDA上深度学习模型量化的自动化优化
  2. mysql 控制台操作命令
  3. Linux手动分区步骤
  4. BFS(广度优先搜索)
  5. BugkuCTF-MISC题低位的色彩
  6. Information Retrieval --- Outline
  7. vscode regex previewer插件怎么用_分享五款开挂神器!助你效率倍增!做PPT怎么能不会用插件?...
  8. 生态系统服务——水源涵养水源涵养分布数据
  9. 初步猜测,当map所在线程跟显存有关时,容易崩溃
  10. 加载八叉树索引文件_mysql innodb索引原理
  11. word参考文献编号、引用、修改
  12. 全网最全最细的PLSQL下载、安装、配置、使用指南、问题解答,相关问题已汇总
  13. python tkinter canvas
  14. 小程序父子组件间传值(微信/支付宝/钉钉)
  15. php中生成图片代码,用PHP代码在网页上生成图片
  16. Entity Framework Core系列教程-2安装EF Core
  17. 用Python和OpenCV实现照片马赛克拼图(蒙太奇照片)
  18. 原神3.2剧情服搭建教程
  19. 基于yoloV7-pose添加任意关键点 + 多类别分类网络修改
  20. 【置顶】图灵近期出版和即将出版的新书

热门文章

  1. java订单重复提交_java表单重复提交常用解决办法
  2. matlAB gui 变成c,matlab改变GUI和figure左上角图标的方法,并生成exe文件
  3. ocr 超时小票识别_票总管-发票识别核验利器
  4. python图合并_Python-numpy实现灰度图像的分块和合并方式
  5. java类验证和装载顺序_深度分析Java的ClassLoader机制(源码级别)
  6. php备份网站程序,使用PHP备份整个网站
  7. laytpl语法_浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
  8. indexed true mysql_一行代码,搞定浏览器数据库 IndexedDB
  9. Pheatmap做热图数据处理过程
  10. Matplotlib从入门到精通