recmutex.h

来自「一个类似windows」· C头文件 代码 · 共 28 行

H
28
字号
#ifndef _ROSRTL_RECMUTEX_H
#define _ROSRTL_RECMUTEX_H

typedef struct _RECURSIVE_MUTEX {
    /* Lock. */
    FAST_MUTEX Mutex;
    /* Number of times this object was locked */
    SIZE_T LockCount;
    /* CurrentThread */
    PVOID CurrentThread;  
    /* Notification event which signals that another thread can take over */
    KEVENT StateLockedEvent;
    /* IRQL from spin lock */
    KIRQL OldIrql;
    /* Is Locked */
    BOOLEAN Locked;
    /* Is reader or writer phase */
    BOOLEAN Writer;
    /* Spin lock needed for */
    KSPIN_LOCK SpinLock;
} RECURSIVE_MUTEX, *PRECURSIVE_MUTEX;

extern VOID RecursiveMutexInit( PRECURSIVE_MUTEX RecMutex );
extern SIZE_T RecursiveMutexEnter( PRECURSIVE_MUTEX RecMutex, BOOLEAN ToRead );
extern VOID RecursiveMutexLeave( PRECURSIVE_MUTEX RecMutex );

#endif/*_ROSRTL_RECMUTEX_H*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?