Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

87 lines
2.6 KiB

/*++
Copyright (c) 1991-1993 Microsoft Corporation
Module Name:
ReplLock.h
Abstract:
This module defines lock equates for use with net/inc/netlock.h.
For more information, see the comments in that file.
See also public/spec/network/repllock.txt.
Author:
John Rogers (JohnRo) 30-Dec-1991
Environment:
Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
Requires ANSI C extensions: slash-slash comments, long external names.
Revision History:
30-Dec-1991 JohnRo
Created.
02-Jan-1992 JohnRo
Added support for FAKE_PER_PROCESS_RW_CONFIG handling.
09-Jan-1992 JohnRo
Client list lock and pool lock can be held at same time.
15-Jan-1992 JohnRo
Added config list lock level.
10-Feb-1992 JohnRo
Added lock for master's client list (RMGlobalClientList).
25-Mar-1992 JohnRo
Revised/corrected lock level numbers.
09-Nov-1992 JohnRo
RAID 7962: Repl APIs in wrong role kill svc.
25-Mar-1993 JohnRo
RAID 4267: Replicator has problems when work queue gets large.
--*/
#ifndef _REPLLOCK_
#define _REPLLOCK_
//
// Define levels for locks used by the replicator service. These levels
// are checked during debugging. Locks which shouldn't be held at the same
// time can have the same level. Make sure there are no conflicts with the
// reserved lock level(s) in netlock.h.
//
// Config data lock can be held while getting client list lock.
// For instance, this happens in NetrImportDirAdd.
//
// Config data lock is held while getting a master list lock in
// NetrReplImportDirAdd, GuardUpdate, etc.
//
// Client list lock can be held while getting lock on delay list.
// This happens when ReplDoUpdate calls ReplScanQueuesForMoreRecentMsg.
//
// The client list lock can be held while getting a pool lock. This
// happens when ReplRemoveClientRecForDirName calls ReplClientFreePoolEntry.
// Also ReplCheckTimeList calls ReplQuePut, which calls ReplClientGetPoolEntry.
//
// Client list lock can be held while getting lock on work queue.
//
// Client list lock can be held while getting lock on duplicate list.
//
// The delay list lock can be held while getting a lock
// for the work queue.
//
#define CONFIG_DATA_LOCK_LEVEL ((DWORD) 0x00000100)
#define CLIENT_LIST_LOCK_LEVEL ((DWORD) 0x00000200)
#define DELAY_LIST_LOCK_LEVEL ((DWORD) 0x00000300)
#define POOL_LOCK_LEVEL ((DWORD) 0x00000400)
#define WORK_QUEUE_LOCK_LEVEL ((DWORD) 0x00000500)
#define MASTER_LIST_LOCK_LEVEL ((DWORD) 0x00000600)
#define DUPL_LIST_LOCK_LEVEL ((DWORD) 0x00000700)
#endif // ndef _REPLLOCK_