阅读:1683回复:2
还是mj_read 读数据缓冲区 (上个帖子取分的到这来)
读了几次就死机了,为何?下面是代码:
if((Irp->Flags & IRP_PAGING_IO) || (Irp->Flags & IRP_SYNCHRONOUS_PAGING_IO)) { if((Irp->Flags & IRP_NOCACHE)) { //加密解密操作 pUserBuffer = MapUserBuffer(Irp, IrpSp->Parameters.Read.Length,&(m_b)); } } } void *MapUserBuffer (IN PIRP Irp, IN ULONG Length, OUT BOOLEAN *LockedBuffer) { *LockedBuffer = FALSE; if (Irp->MdlAddress == NULL) { PMDL Mdl = IoAllocateMdl(Irp->UserBuffer, Length, FALSE, FALSE, Irp); if (Mdl == NULL) return NULL; try { MmProbeAndLockPages(Mdl, Irp->RequestorMode, IoModifyAccess); } except (EXCEPTION_EXECUTE_HANDLER) { IoFreeMdl(Mdl); Irp->MdlAddress = NULL; return NULL; } *LockedBuffer = TRUE; } return MmGetSystemAddressForMdlSafe(Irp->MdlAddress,NormalPagePriority ); } |
|
沙发#
发布于:2003-02-13 15:15
呵呵,先拿分,不客气了:)
|
|
|
板凳#
发布于:2003-02-13 15:55
先给10分,因为这个帖子的问题我还得给,我还得再开一个帖子给分,不过,老大!您心眼可真直!说给分你就真只来要分,帖子都不帮我看看啊!!上个帖子没分你都那么帮俺细心回了,这个帖子有分你还不管了,呵呵
|
|