Re: full kernel mode caused first-chance exception by alexquisi
alexquisi
Fri Nov 24 04:41:36 CST 2006
Hi,
you have to check which drivers/processes are accessing the processor's
registers directly instead of using the mapping in user space.
for example:
volatile GPIO_REGS *pGPIO_REGS;
pGPIO_REGS = (volatile GPIO_REGS *)GPIO_BASE_U_VIRTUAL;
It is using the mapping of registers in the kernel space and only works
when full kernel mode is enabled, while:
GPIO_pointer = NULL;
PHYSICAL_ADDRESS phaddr;
phaddr.QuadPart = GPIO_BASE;
GPIO_pointer = static_cast<GPIO_registers_t*>(MmMapIoSpace( phaddr,
sizeof *GPIO_pointer, FALSE ));
works in both modes (and is the way it should be done).
Regards,
Alexander