Detectar una IRQ
Publicado por Marcelino (2 intervenciones) el 25/11/2008 17:29:59
Hola a todos
Estoy intentando hacer un driver que se conecte a una IRQ (la IRQ5), para ello utilizo el siguiente codigo:
DeviceExtension->Level = 5;
DeviceExtension->Vector = DeviceExtension->Level;
MappedVector = HalGetInterruptVector(0,0,DeviceExtension->Level, DeviceExtension->Vector,&Irql, &DeviceExtension->Affinity);
if (MappedVector == 0)
DbgPrint("Interrupt.sys: HalGetInterruptVector failed ");
IoInitializeDpcRequest(DeviceObject,InterruptDpcRoutine);
status = IoConnectInterrupt(&DeviceExtension->InterruptObject, (PKSERVICE_ROUTINE)InterruptIsr, DeviceObject, NULL,
MappedVector,
Irql, Irql, Latched, FALSE, DeviceExtension->Affinity, FALSE);
if (!NT_SUCCESS (status))
DbgPrint("Interrupt.sys: IoConnectInterrupt Failed ");
Pero cuando genero esa interrupcion el driver no hace nada.
Alguna idea??
Muchas gracias
Estoy intentando hacer un driver que se conecte a una IRQ (la IRQ5), para ello utilizo el siguiente codigo:
DeviceExtension->Level = 5;
DeviceExtension->Vector = DeviceExtension->Level;
MappedVector = HalGetInterruptVector(0,0,DeviceExtension->Level, DeviceExtension->Vector,&Irql, &DeviceExtension->Affinity);
if (MappedVector == 0)
DbgPrint("Interrupt.sys: HalGetInterruptVector failed ");
IoInitializeDpcRequest(DeviceObject,InterruptDpcRoutine);
status = IoConnectInterrupt(&DeviceExtension->InterruptObject, (PKSERVICE_ROUTINE)InterruptIsr, DeviceObject, NULL,
MappedVector,
Irql, Irql, Latched, FALSE, DeviceExtension->Affinity, FALSE);
if (!NT_SUCCESS (status))
DbgPrint("Interrupt.sys: IoConnectInterrupt Failed ");
Pero cuando genero esa interrupcion el driver no hace nada.
Alguna idea??
Muchas gracias
Valora esta pregunta


0