返回首页

{A}简介
WINFO,一个众所周知的工具,在互联网上,可以直接访问I / O和存储器。它适用于微软无证功能(原生API),以获取I / O数据。设计的PCI查看WDF的结构是基于模拟的WINFO函数来访问I / O和存储器。背景
Win32 SDK中的知识是必需的。程序结构{S0}
PCI视图可以访问I / O端口和内存通过IOMEM.DLL或DeviceIoControl的或ReadFile / WriteFile的的职能。应用简介
READ_PORT_UCHAR(USHORT / ULONG)或WRITE_PORT_UCHAR API函数(USHORT / ULONG)可应用于访问的I / O端口在Windows NT环境。 API函数的用法类似于C语言运行时库提供的功能,如_outp和_inp,。

case 1: //UCHAR 

   if (pvInputBuffer->Command == 0) //decide to write or read 

        WRITE_PORT_UCHAR((PUCHAR)pvInputBuffer->PortBase, (UCHAR)pvInputBuffer->Data); 

   else 

        *(PUCHAR)pvOutputBuffer = READ_PORT_UCHAR((PUCHAR)pvInputBuffer->PortBase); 

break; 



case 2: // USHORT 

   if (pvInputBuffer->Command == 0) 

       WRITE_PORT_USHORT((PUSHORT)pvInputBuffer->PortBase, (USHORT)pvInputBuffer->Data); 

   else 

       *(PUSHORT)pvOutputBuffer = READ_PORT_USHORT((PUSHORT)pvInputBuffer->PortBase); 

break; 



case 4: //ULONG 

   if (pvInputBuffer->Command == 0) 

       WRITE_PORT_ULONG((PULONG)pvInputBuffer->PortBase, (ULONG)pvInputBuffer->Data); 

   else 

       *(PULONG)pvOutputBuffer = READ_PORT_ULONG((PULONG)pvInputBuffer->PortBase); 

break;

的内存的处理是较复杂的I / O的过程中可以很容易地通过API函数。首先,我们需要得到用户想访问内存中的地址和长度。然后,MmMapIoSpace功能可以映射到一个非分页系统空间的地址和长度。如果前面的过程是成功的,IoAllocateMdland MmBuildMdlForNonPagedPool拨款将足够的缓冲,以实际内存映射。MmMapLockedPagesSpecifyCache功能可以映射的虚拟内存给调用者。因此,环3应用程序可以直接获取内存。{C}
在实模式下的动态功能提供OUTP,_outpw,_outpd,_inp,_inpw和_inpd访问I / O端口。有4种功能,如MapMemory,UnmapMemory,ReadPhyicalMemory和WritePhyicalMemory,可用于获取内存。
功能:用于访问内存的地址和长度:
PUCHAR MapMemory(__in ULONG Address, __in ULONG Length);
Address : To access the beginning address of memory.

Length : To get the length of memory



The function will return the beginning address mapping in memory 

when executed successfully. 

Function: Release the assigned memory.

BOOLEAN UnmapMemory(VOID);
示例程序
应用程序提供了一个样本访问的IO - MEM。不包括DLL包,应用程序显示的信息分配内存或I / O端口时,直接调用IOMEM.DLL。源代码可以downloadednbsp从
范例:{S2}历史四月二十六日,2010:战后初期

回答

评论会员:King64 时间:2012/01/26
我得到了下面的错误消息:"[StartDrive] StarService失败与错误2失败!"{S3}。任何建议?最好的问候{S4}
评论会员:Pdaus 时间:2012/01/26
posibble访问的PCI基址?修改寄存器,用你的方法
评论会员:Pdaus 时间:2012/01/26
亲爱的Pdaus,
是的。
传良腾