我用Buffer = ExAllocatePool(PagedPool,WriteLen);分配内存,当writelen<4000多字节的时候,就ok,否则,就兰屏谁有经验,帮助解决以下
回复(17) 2002-09-29 10:35 来自版块 - NDIS网络接口开发
表情
babizhu多谢两位兄台援手,问题已经解决,分如数奉上,请笑纳 (2002-09-30 09:57)
gjpland试一下,下面我改的代码。 NTSTATUS PtDispatch( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { PIO_STACK_LOCATION irpStack; NTSTATUS ...(2002-09-29 19:09)
babizhu 1. IoCreateDevice后是否 DeviceObject->Flags |= DO_BUFFER_IO?,当然,否则,,小于0xfe0的数据应该也会非法 2. KeAcquireSpinLock(&BufferLock,&irql); ...(2002-09-29 17:01)
gjpland逻辑: 看了半天 KeAcquireSpinLock(&BufferLock,&irql); 和 KeReleaseSpinLock(&BufferLock,irql); 之间都是涉及局部变量。为什么要用锁呢? (2002-09-29 16:31)
gjplandNTSTATUS PtDispatch( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { PIO_STACK_LOCATION irpStack; NTSTATUS status = STA...(2002-09-29 16:28)
babizhuNTSTATUS PtDispatch( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { PIO_STACK_LOCATION irpStack; NTSTATUS status = STA...(2002-09-29 16:07)
gjpland我用Buffer = ExAllocatePool(NonPagedPool,WriteLen); 也是同样的错误啊!!! 我该怎么解决,拜托多写两句! 不是拜托我多写两句, 是拜托你多给两行代码看看。 (2002-09-29 15:51)
babizhu我用Buffer = ExAllocatePool(NonPagedPool,WriteLen); 也是同样的错误啊!!! 我该怎么解决,拜托多写两句!(2002-09-29 15:36)
gjpland哦,准确地说应该是应用地址,感谢楼上的兄弟 IRQL== PASSIVE_LEVEL for PagedPool. (2002-09-29 14:46)
babizhu我原来就是(!=null)这么用的,出了问题之后,看ddk中的sample就是if (buf)这么用的,就照着改了过来,问题依然存在 现在我都不知道问题出在哪儿了 如果分配内存没有错 有没有可能 DO_BUFFERED_IO方法不支持超过4k字节呢 (2002-09-29 14:23)

返回顶部