Wince在内核中调用CreateMutex

Wince Call CreateMutex in Kernel

我需要在 OEM 抽象层 (OAL) 和 运行 内核外部的驱动程序之间共享资源。为了共享资源,我将创建一个互斥量。当我从 OAL 调用 CreateMutex(或 coredll.lib 中的任何其他函数)时,我得到预取中止异常。

如何在 Windows Compact 7 的 OAL(内核 space)中创建互斥量?

您不能使用互斥锁,但可以使用临界区。 https://msdn.microsoft.com/en-us/library/ee478303.aspx 临界区在同一进程内的线程之间工作,如果您的驱动程序是内核模式驱动程序而不是用户模式驱动程序,它将在 nk.exe 内 运行,与 OAL 相同的进程。 您可以实现几个内核 IOCTL 来 Enter/Leave 它,而不是共享临界区(这并不容易,因为它们无法命名)。