2016-01-22 40 views
0

我尝试在我的win32应用程序中设置并行端口。 我在我的程序中使用inpout32.dll。 它工作在Windows XP中,但在Windows 7控制LPT的hwinterface.sys在哪里?

发生这种情况,因为我已经在Windows XP hwinterface.sys不工作,但我没有在Windows文件7.

我的问题是:在哪里hwinterface.sys?我怎么找到它?或者我如何使用LPT而不使用inpout32.dll

这些功能在inpout32.dll:

hComm01 = CreateFile("\\\\.\\hwinterface", 
          GENERIC_READ | GENERIC_WRITE, 
          0, 
          NULL, 
          OPEN_EXISTING, 
          FILE_ATTRIBUTE_NORMAL, 
          NULL); 
DeviceIoControl(hComm01, 
       IOCTL_WRITE_PORT_UCHAR, 
       &Buffer, 
       3, 
       NULL, 
       0, 
       &BytesReturned, 
       NULL); 
+1

IIRC inpout32.dll自动提取并加载它在内核模式驱动程序,应该没有必要有一个单独的.sys文件;也许你正在使用64位操作系统上的旧版32位版本?您确定您使用的是最新版本(http://www.highrez.co.uk/downloads/inpout32/),其中包含32位和64位Windows的驱动程序? –

+0

感谢您的回复。但我的Windows 7是32位,我也安装了我的并行端口驱动程序。 – Amir

+0

并行端口驱动程序是另一回事,inpout32必须加载自己的驱动程序,以充当必须以内核模式运行的特权指令和用户模式程序之间的桥梁。再说一次:确定您使用的是我链接的页面中的最新版本的inpout32.dll? –

回答

1

在我第一次应以管理员身份运行。

refrence: 第一次运行时,它必须在Vista和更高版本上运行(以管理员身份运行)。

http://www.highrez.co.uk/downloads/inpout32/

+1

嗯,Windows的设计是为了保护系统的稳定性。为了绕过这些保护并对非内核代码提供完全的硬件控制,您必须具有管理员访问权限。 –