#pragma once // ke_mutex.h - binary ownership mutex #include #include #include #include typedef struct MUTEX { OBJECT Header; SPINLOCK Lock; struct THREAD* Owner; /* NULL if unowned */ LIST_ENTRY WaitList; } MUTEX; KSTATUS MutexCreate(MUTEX **out); KSTATUS KeAcquireMutex(MUTEX* mutex); KSTATUS KeTryAcquireMutex(MUTEX* mutex); void KeReleaseMutex(MUTEX* mutex);