|
各位大侠好!小弟现在搞wince5.0下的DM9000驱动遇到点问题!
我在驱动中加调试信息发现我申请中断处问题了!
EDeviceRegisterInterrupt()函数中有个NdisMRegisterInterrupt()这个函数应该是NDIS层的函数。意思是申请了中断吗?可是现在我这出了问题了
if((status=NdisMRegisterInterrupt(
&m_InterruptHandle,
m_pUpper->GetNdisHandle(),
37, // or say, irq vector
37, // irql level
TRUE, // request ISR
TRUE,//(BOOLEAN)m_szConfigures[CID_IRQ_SHARED], // shared interrupt
(KINTERRUPT_MODE)m_szConfigures[CID_IRQ_GEN_TYPE])) != NDIS_STATUS_SUCCESS)
{
if(status==NDIS_STATUS_RESOURCE_CONFLICT)
RETAILMSG(DM9000_DEBUG, (TEXT("NDIS_STATUS_RESOURCE_CONFLICT\r\n")));
else if(status==NDIS_STATUS_RESOURCES)
RETAILMSG(DM9000_DEBUG, (TEXT("NDIS_STATUS_RESOURCES\r\n")));
else
RETAILMSG(DM9000_DEBUG, (TEXT("NDIS_STATUS_FAILURE\r\n")));
RETAILMSG(DM9000_DEBUG, (TEXT("request irq fucking errors\r\n")));
THROW((ERR_STRING("Error in registering interrupt"),status));
}
现在调试信息显示时红色部分我看help中这样描述的:
The attempt to initialize the interrupt object failed, possibly due to another driver's prior claim on the InterruptVector or InterruptLevel in the registry.
想请教下各位是怎么回事呀??
|
|