这个位于用户方式分区上面的64 KB分区是禁止进入的,访问该分区中的内存的任何企图均
将导致访问违规。M i c r o s o f t之所以保留该分区,是因为这样做将使得M i c r o s o f t能够更加容易地实
现操作系统。当将内存块的地址和它的长度传递给Wi n d o w s函数时,该函数将在执行它的操作之
前使内存块生效。
对于Wr i t e P r o c e s s M e m o r y这样的函数来说,写入的内存区是由内核方式代码来使之生效的,
该代码能够成功地访问内核方式分区中的内存( 3 2位系统上0 x 8 0 0 0 0 0 0 0以上的地址)。如果在
0 x 8 0 0 0 0 0 0 0地址上存在内存,上面的函数调用就能成功地将数据写入只应该由内核方式代码访
问的内存。为了防止出现这种情况,并使这个内存区迅速生效, M i c r o s o f t选择的办法是使该分
区始终保持禁止进入的状态。只要试图读取或写入该分区中的内存,就一定会导致访问违规。
-----------------------------------------
我看windows核心编程,看到这里有疑问。为什么是64kb呢? 难道Wr i t e P r o c e s s M e m o r y不能写大于64kb的吗?那不还是访问违规了?