Introduce KMUTEX structure and remove KGATE usage from push lock
This commit is contained in:
@@ -443,11 +443,15 @@ typedef struct _KAPC_STATE
|
|||||||
BOOLEAN UserApcPending;
|
BOOLEAN UserApcPending;
|
||||||
} KAPC_STATE, *PKAPC_STATE;
|
} KAPC_STATE, *PKAPC_STATE;
|
||||||
|
|
||||||
/* Event gate structure definition */
|
/* Mutex object structure definition */
|
||||||
typedef struct _KGATE
|
typedef struct _KMUTEX
|
||||||
{
|
{
|
||||||
DISPATCHER_HEADER Header;
|
DISPATCHER_HEADER Header;
|
||||||
} KGATE, *PKGATE;
|
LIST_ENTRY MutexListEntry;
|
||||||
|
PKTHREAD OwnerThread;
|
||||||
|
BOOLEAN Abandoned;
|
||||||
|
UCHAR ApcDisable;
|
||||||
|
} KMUTEX, *PKMUTEX;
|
||||||
|
|
||||||
/* Push Lock structure definition */
|
/* Push Lock structure definition */
|
||||||
typedef union _KPUSH_LOCK
|
typedef union _KPUSH_LOCK
|
||||||
@@ -467,11 +471,7 @@ typedef union _KPUSH_LOCK
|
|||||||
/* Push lock wait block structure definition */
|
/* Push lock wait block structure definition */
|
||||||
typedef struct _KPUSH_LOCK_WAIT_BLOCK
|
typedef struct _KPUSH_LOCK_WAIT_BLOCK
|
||||||
{
|
{
|
||||||
union
|
KEVENT WakeEvent;
|
||||||
{
|
|
||||||
KGATE WakeGate;
|
|
||||||
KEVENT WakeEvent;
|
|
||||||
};
|
|
||||||
PKPUSH_LOCK_WAIT_BLOCK Next;
|
PKPUSH_LOCK_WAIT_BLOCK Next;
|
||||||
PKPUSH_LOCK_WAIT_BLOCK Last;
|
PKPUSH_LOCK_WAIT_BLOCK Last;
|
||||||
PKPUSH_LOCK_WAIT_BLOCK Previous;
|
PKPUSH_LOCK_WAIT_BLOCK Previous;
|
||||||
|
|||||||
@@ -263,8 +263,8 @@ typedef struct _KDPC KDPC, *PKDPC;
|
|||||||
typedef struct _KDPC_DATA KDPC_DATA, *PKDPC_DATA;
|
typedef struct _KDPC_DATA KDPC_DATA, *PKDPC_DATA;
|
||||||
typedef struct _KERNEL_INITIALIZATION_BLOCK KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK;
|
typedef struct _KERNEL_INITIALIZATION_BLOCK KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK;
|
||||||
typedef struct _KEVENT KEVENT, *PKEVENT;
|
typedef struct _KEVENT KEVENT, *PKEVENT;
|
||||||
typedef struct _KGATE KGATE, *PKGATE;
|
|
||||||
typedef struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
|
typedef struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
|
||||||
|
typedef struct _KMUTEX KMUTEX, *PKMUTEX;
|
||||||
typedef struct _KPROCESS KPROCESS, *PKPROCESS;
|
typedef struct _KPROCESS KPROCESS, *PKPROCESS;
|
||||||
typedef struct _KPUSH_LOCK_WAIT_BLOCK KPUSH_LOCK_WAIT_BLOCK, *PKPUSH_LOCK_WAIT_BLOCK;
|
typedef struct _KPUSH_LOCK_WAIT_BLOCK KPUSH_LOCK_WAIT_BLOCK, *PKPUSH_LOCK_WAIT_BLOCK;
|
||||||
typedef struct _KQUEUE KQUEUE, *PKQUEUE;
|
typedef struct _KQUEUE KQUEUE, *PKQUEUE;
|
||||||
|
|||||||
Reference in New Issue
Block a user