// Public nt-lite DDK mutex declarations. #pragma once #include #include #include #include #include typedef struct MUTEX { OBJECT Header; SPINLOCK Lock; THREAD* Owner; LIST_ENTRY WaitList; } MUTEX; // Creates a mutex object. __declspec(dllexport) KSTATUS KeMutexCreate(MUTEX** out); // Acquires a mutex, blocking when necessary. __declspec(dllexport) KSTATUS KeAcquireMutex(MUTEX* mutex); // Attempts to acquire a mutex without blocking. __declspec(dllexport) KSTATUS KeTryAcquireMutex(MUTEX* mutex); // Releases a mutex. __declspec(dllexport) void KeReleaseMutex(MUTEX* mutex);