2

我可以像这样在 Ubuntu 中简单地使用 D 访问并行端口。

import std.stdio;
import core.bitop;

// parallel port address 
const uint port = 0x0c000;

void main()
{
    /*
        permission related stuff under linux
    */

    /* data */
    ubyte data = 0b_11111111;
    outp(port, data);
}

但我想在 Windows 上读写并行端口。当我尝试此代码时,我收到此错误消息。

object.Error: Privileged Instruction
----------------
41377C
4135F3
4025BC
4021B3
4BD6F9
1553C6
----------------

有没有一种简单的方法可以使用 D 访问 Windows 上的并行端口?谢谢..

4

1 回答 1

3

Windows 不授予用户模式程序直接硬件访问权限。您将需要编写一个驱动程序(.sys 文件),很可能是用 C 语言(使用 WINDDK)。您还需要购买代码签名证书以允许您的驱动程序在 64 位 Windows 版本上运行(或禁用驱动程序签名,如果您只需要在您的机器上运行它)。

于 2012-07-09T07:36:13.450 回答