yjx2003
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望6点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1044回复:2

当对dma 的transfer 进行初始化时产生 irql_not_less_or_equal

楼主#
更多 发布于:2005-03-08 16:30
当对dma 的transfer 进行初始化时m_CurrentTransfer->Initiatein

在softice 产生 irql_not_less_or_equal
请问这是什么原因造成的

如何处理


function list below  ################################################

void Pci2_8Device::SerialRead(KIrp I)
{

  NTSTATUS status = STATUS_SUCCESS;  
 // Create a new DMA transfer object for this IRP m_CurrentTransfer = new(NonPagedPool) KDmaTransfer(this, &m_Dma);

// get memory for transfer  

 t << \"Entering Pci2_8Device::SerialRead, m_CurrentTransfer\" << m_CurrentTransfer;

if ( m_CurrentTransfer == NULL )
{     t << \"Entering Pci2_8Device::SerialRead, m_CurrentTransfer == NULL\" << I << EOL;
    status = STATUS_INSUFFICIENT_RESOURCES;         I.Information() = 0;      
  I.Status() = status;      
  PnpNextIrp(I); }
status = m_CurrentTransfer->Initiate(
I.Mdl(),
(I.MajorFunction() == IRP_MJ_READ) ? FromDeviceToMemory : FromMemoryToDevice,
LinkTo(OnDmaReady) );  
   t << \"Entering Pci2_8Device::SerialRead,m_CurrentTransfer->Initiate \" << I << EOL;    

if ( ! NT_SUCCESS(status) ) { delete m_CurrentTransfer; m_CurrentTransfer = NULL; I.Information() = 0;
I.Status() = status;
PnpNextIrp(I);
}
 ###############################################
请向您的朋友推荐《名人传记》电子期刊 http://list.cn99.com/cgi-bin/getlsts?listname=zhuanji
ewater168
驱动牛犊
驱动牛犊
  • 注册日期2004-11-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-04-01 10:40
老兄你的问题解决没有啊,我也碰到同样的问题。那位高手能解答解答
x810421
驱动牛犊
驱动牛犊
  • 注册日期2004-10-08
  • 最后登录2006-04-15
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望7点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-03 11:02
我想可能是操作的优先级不够吧.要提高优先级.
游客

返回顶部