No tenes los conceptos basicos claros ... es muy dificil hacer algo estable y funcional de esa manera.
El IRQL es uno solo, el de cada procesador.
http://blogs.msdn.com/b/doronh/archive/2010/02/02/what-is-irql.aspx
Un thread, con d, es un hilo, una threat, con t, es una amenaza.
La excepcion esa se genera cuando se cambia de hilo efectivamente ATTEMPTED_SWITCH_FROM_DPC. Podias tener suerte en caso de que el evento ya estuviera señalado ... o cuando no tuvieras que esperar por el ...
No se si comprendi todo el asunto y lo mas probable es que exista una forma de hacer esto CORRECTAMENTE y no con un hook ... pero una posible solucion puede ser esta:
Marca el IRP como pendiente, retorna el estado como tal en el manejador del IRP y encola un work item. En el work item llama al manejador original o completalo como denegado y listo.
El IRQL es uno solo, el de cada procesador.
http://blogs.msdn.com/b/doronh/archive/2010/02/02/what-is-irql.aspx
Un thread, con d, es un hilo, una threat, con t, es una amenaza.
La excepcion esa se genera cuando se cambia de hilo efectivamente ATTEMPTED_SWITCH_FROM_DPC. Podias tener suerte en caso de que el evento ya estuviera señalado ... o cuando no tuvieras que esperar por el ...
No se si comprendi todo el asunto y lo mas probable es que exista una forma de hacer esto CORRECTAMENTE y no con un hook ... pero una posible solucion puede ser esta:
Marca el IRP como pendiente, retorna el estado como tal en el manejador del IRP y encola un work item. En el work item llama al manejador original o completalo como denegado y listo.