⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 访问物理内存、端口和PCI配置空间
💻 CPP
字号:
#include <windows.h>
#include <stdio.h>
#include <malloc.h>
#include "pmdll.h"

int main()
{
	BOOL b=LoadPhyMemDriver();

	if (b==FALSE)
	{
		printf("load phymem.sys failed\n");
		exit(-1);
	}

	char *va=(char*)MapPhyMem(0xF7020, 20);
	printf("mapped virtual address = 0x%08x\n", va);
	UnmapPhyMem(va, 20);

/*
	DWORD d=ReadPortByte(0x379);
	WritePortLong(0x378, 10);
	d=ReadPortLong(0x378);
*/

	//enumerate PCI bus
	for (int bus=0; bus<=255; bus++)
	{
		for (int dev=0; dev<=31; dev++)
		{
			for (int func=0; func<=7; func++)
			{
				DWORD dev_ven;
				if (ReadPCI(bus, dev, func, 0, 4, &dev_ven))
				{
					if (LOWORD(dev_ven)!=0xFFFF)
						printf("Bus %d, Device %d, Function %d, Vendor ID 0x%x, Device ID 0x%x\n",
							bus, dev, func, LOWORD(dev_ven), HIWORD(dev_ven));
				}
			}
		}
	}

	printf("end");
	getchar();

	UnloadPhyMemDriver();
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -