Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#2641
Programación C/C++ / Re: BSOD con Kernel mutex
25 Febrero 2011, 16:59 PM
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.
#2642
gxg: vas a tener que poner mas esfuerzo de tu parte.

raul338: no dejes mas enlaces sobre VB por favor, este no es el subforo adecuado para eso.
#2644
Programación C/C++ / Re: BSOD con Kernel mutex
25 Febrero 2011, 01:41 AM
No, tu codigo esta mal:

72:       KeWaitForSingleObject(syncEventK,Executive,KernelMode,FALSE,NULL);

CURRENT_IRQL:  2 << DISPATCH_LEVEL

El ultimo parametro de esa funcion es el Timeout y la unica forma de llamarlo en DISPATCH_LEVEL es con un puntero a un LARGE_INTEGER cuyo valor sea 0. Es decir que no podes ESPERAR, solo podes comprobar si el objeto esta señalado.
En tu caso le estas pasando un puntero nulo y por eso se produce la excepcion no controlada y el BSOD.
#2645
Programación C/C++ / Re: BSOD con Kernel mutex
25 Febrero 2011, 00:52 AM
Callers of KeWaitForSingleObject must be running at IRQL <= DISPATCH_LEVEL. However, if Timeout = NULL or *Timeout != 0, the caller must be running at IRQL <= APC_LEVEL and in a nonarbitrary thread context.

No deberias esperar en un DPC igual ...
#2646
Programación C/C++ / Re: Api vs VCL
24 Febrero 2011, 18:38 PM
VC++ y Visual Studio.
#2647
Programación C/C++ / Re: Api vs VCL
24 Febrero 2011, 16:44 PM
No depender de Borland que vaya uno a saber cuanto mas durara  :silbar:

Comprender mejor que esta haciendo tu programa.

Poder cambiar de compilador.

#2649
ASM / Re: BootLoader carga programa C
22 Febrero 2011, 10:13 AM
Asumo que es cargar + ejecutar, si ese Kernel es valido si (por ejemplo, si estas en modo Real mejor que el Kernel sea de 16 bits).
#2650
El mundo esta loco, los piratas hablando de piratas  :silbar: