Windows 64bit 驱动 和 应用开发 笔记

来源:互联网 发布:dnf决战人工智能6.2 编辑:程序博客网 时间:2024/05/19 23:27

一、64位 驱动开发:

1.   DDK编译支持XP 64bit 建立,但DDK取名为ia64

关于64位处理器的说明:

A) x64: x86-64 == x64 == AMD64 == Intel 64: 这些名字实际上是一个意思。应用如下:

用于AMD的Athlon 64、Athlon 64 FX、Athlon 64 X2、Turion 64、Turion 64 X2、Opteron及较新款的Sempron

和Phenom处理器上。

用于IntelPentium 4、Pentium D、Pentium Extreme Edition、Celeron D、Xeon、Intel Core 2、Intel Core 2 Quad

Intel Core i3、Intel Core i5及Intel Core i7处理器上。

B) IA64:仅用于Intel的安腾处理器。


2. 编译64bit版本存在指针不能转换为ULONG的问题; 64bit下,指针是64bit而ULONG是32bit,可把指针转成 ULONG64 。

例如:

typedef struct _DEVICE_EXTENSION  {

...

PVOID                 pMemoryStart;

...

}DEVICE_EXTENSION, *PDEVICE_EXTENSION;

32bit code: #define w32(pDevExt, regoffset, val32) { WRITE_REGISTER_ULONG( (PULONG)( (ULONG)pDevExt->MemoryStart + regoffset ),val32 ); }

64bit code:#define w32(pDevExt, regoffset, val32) { WRITE_REGISTER_ULONG( (PULONG)( (ULONG64)pDevExt->MemoryStart + regoffset ),val32 ); }


二、64位 应用开发

1、建立环境:我在XP 32bit下的安装顺序:VS2005,VS2005SP1,.net framework3.5sp1,windows SDK for Windows7 (需下载x86版)。

2、在VS2005中建立VC++应用程序后,选择Build->Configuration Manager,在Platform下选择New, 在New Platform下选择x64,下面的Copy settings from (Win32)不用改。

注意:X64应用程序不能在32位操作系统上运行,而Win32应用程序则可以在X64操作系统上运行的。另,如果在WIN7 X64上不能运行,请选择静态链接。

3、还需注意的是Configuration Manager中Active solution platform选择Win32/x64,则下面的Project contexts的Platform也要选择对应Win32/x64。

原创粉丝点击