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

📄 phymem.h

📁 访问物理内存、端口和PCI配置空间
💻 H
字号:
#ifndef __PHYMEM_H
#define __PHYMEM_H

#define	FILE_DEVICE_PHYMEM	0x8000

#define IOCTL_PHYMEM_MAP	\
	CTL_CODE(FILE_DEVICE_PHYMEM, 0x800,\
			 METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IOCTL_PHYMEM_UNMAP	\
	CTL_CODE(FILE_DEVICE_PHYMEM, 0x801,\
			 METHOD_BUFFERED, FILE_ANY_ACCESS)

#define	IOCTL_PHYMEM_GETPORT	\
	CTL_CODE(FILE_DEVICE_PHYMEM, 0x802,\
			 METHOD_BUFFERED, FILE_ANY_ACCESS)

#define	IOCTL_PHYMEM_SETPORT	\
	CTL_CODE(FILE_DEVICE_PHYMEM, 0x803,\
			 METHOD_BUFFERED, FILE_ANY_ACCESS)

#define	IOCTL_PHYMEM_GETPCI	\
	CTL_CODE(FILE_DEVICE_PHYMEM, 0x804,\
			 METHOD_OUT_DIRECT, FILE_ANY_ACCESS)

#define	IOCTL_PHYMEM_SETPCI	\
	CTL_CODE(FILE_DEVICE_PHYMEM, 0x805,\
			 METHOD_OUT_DIRECT, FILE_ANY_ACCESS)

typedef struct tagPHYMEM_MEM
{
	PVOID pvAddr;	//physical addr when mapping, virtual addr when unmapping
	ULONG dwSize;	//memory size to map or unmap
} PHYMEM_MEM, *PPHYMEM_MEM;

typedef struct tagPHYMEM_PORT
{
	ULONG dwPort;	//port number: 0-0xFFFF
	ULONG dwSize;	//must be 1, 2, 4
	ULONG dwValue;	//new value to set
} PHYMEM_PORT, *PPHYMEM_PORT;

typedef struct tagPHYMEM_PCI
{
	ULONG dwBusNum;		//bus number: 0-255
	ULONG dwDevNum;		//device number: 0-31
	ULONG dwFuncNum;	//function number: 0-7
	ULONG dwRegOff;		//register offset: 0-255
	ULONG dwBytes;		//bytes to read or write
} PHYMEM_PCI, *PPHYMEM_PCI;

#endif	//__PHYMEM_H

⌨️ 快捷键说明

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