阅读:1453回复:2
一个全局数据内存,在IRP_WRITE或者IRP_READ是否需要同步呢?
一个全局数据内存,在IRP_WRITE或者IRP_READ是否需要同步呢?
在内核驱动中用 PVOID pvoid_Buffer = ExAllocatePoolWithTag(NonPagedPool,0x10000,DISKPERF_POOLTAG) ; 创建了一个全局数据内存 然后我同步的时,这样做的: 是否合理呢? 1> 针对pvoid_Buffer 使用IoAllocateMdl创建MDL 2> 对该MDL使用MmProbeAndLockPages 加锁 3> 用MmGetSystemAddressForMdlSafe 转换为缓冲区指针 4>然后进行数据操作 5>操作完之后用解锁并释放 MmUnlockPages() IoFreeMdl() 这样做同步正确吗? |
|
沙发#
发布于:2007-04-12 10:51
是呀,全局变量 就用全局锁。就好了。
|
|
|
板凳#
发布于:2007-04-11 15:47
自己搞个全局访问互斥(MUTEX、SPINLOCK、EVENT。。。),没那么复杂。
|
|
|