Windows ce Wince在内核中调用CreateMutex

Windows ce Wince在内核中调用CreateMutex,windows-ce,Windows Ce,我需要在OEM抽象层(OAL)和在内核之外运行的驱动程序之间共享一个资源。为了共享资源,我将创建一个互斥锁。当我从OAL调用(或coredll.lib中的任何其他函数)时,我得到一个预回迁中止异常 如何在Windows Compact 7的OAL(内核空间)中创建互斥体?您不能使用互斥体,但可以使用关键部分。 关键部分在同一进程内的线程之间工作,如果您的驱动程序是内核模式驱动程序而不是用户模式驱动程序,它将在nk.exe内运行,与OAL的进程相同。 您可以实现几个内核ioctl来进入/离开它,而

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


如何在Windows Compact 7的OAL(内核空间)中创建互斥体?

您不能使用互斥体,但可以使用关键部分。 关键部分在同一进程内的线程之间工作,如果您的驱动程序是内核模式驱动程序而不是用户模式驱动程序,它将在nk.exe内运行,与OAL的进程相同。
您可以实现几个内核ioctl来进入/离开它,而不是共享关键部分(因为它们无法命名,所以不容易)。

您不能使用互斥,但可以使用关键部分。 关键部分在同一进程内的线程之间工作,如果您的驱动程序是内核模式驱动程序而不是用户模式驱动程序,它将在nk.exe内运行,与OAL的进程相同。
您可以实现几个内核ioctl来进入/离开它,而不是共享关键部分(因为它们无法命名,所以不容易)。

虽然我帮不了您,但我认为您最好编辑并缩短您的问题,然后询问如何创建互斥锁。我发现你的问题很难理解。@Georg Schölly:谢谢你的反馈。我已经把问题缩小了很多。虽然我帮不了你,但我认为你最好编辑并缩短你的问题,然后问问如何创建互斥锁。我发现你的问题很难理解。@Georg Schölly:谢谢你的反馈。我把问题缩小了很多。谢谢你的意见。我能够向OAL添加一个IOCTL,并像你说的那样使用一个关键部分。由于我使用的是Windows CE 7,我必须在SRC/OAL/OALIOCTL/OALIOCTL.cpp IOControl函数中显式允许IOCTL通过OAL。对不起,我忘记了oaliotcl.dll部分。我的错误:(感谢您的输入。我能够像您所说的那样向OAL添加IOCTL并使用关键部分。因为我使用的是Windows CE 7,所以我必须在SRC/OAL/OALIOCTL/OALIOCTL.cpp IOControl函数中显式允许IOCTL通过OAL。抱歉,我忘记了oaliotcl.dll部分。我的错误:(