Leaked source code of windows server 2003
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.
 
 
 
 
 
 

83 lines
1.5 KiB

/*
* serial.h - Access serialization routines description.
*/
/* Types
********/
typedef struct _serialcontrol
{
BOOL (*AttachProcess)(HMODULE);
BOOL (*DetachProcess)(HMODULE);
BOOL (*AttachThread)(HMODULE);
BOOL (*DetachThread)(HMODULE);
}
SERIALCONTROL;
DECLARE_STANDARD_TYPES(SERIALCONTROL);
typedef struct _nonreentrantcriticalsection
{
CRITICAL_SECTION critsec;
#ifdef DEBUG
DWORD dwOwnerThread;
#endif /* DEBUG */
BOOL bEntered;
}
NONREENTRANTCRITICALSECTION;
DECLARE_STANDARD_TYPES(NONREENTRANTCRITICALSECTION);
/* Prototypes
*************/
/* serial.c */
#ifdef DEBUG
extern BOOL SetSerialModuleIniSwitches(void);
#endif /* DEBUG */
extern void ReinitializeNonReentrantCriticalSection(PNONREENTRANTCRITICALSECTION);
extern BOOL EnterNonReentrantCriticalSection(PNONREENTRANTCRITICALSECTION);
extern void LeaveNonReentrantCriticalSection(PNONREENTRANTCRITICALSECTION);
#ifdef DEBUG
extern BOOL NonReentrantCriticalSectionIsOwned(PCNONREENTRANTCRITICALSECTION);
#endif
extern BOOL BeginExclusiveAccess(void);
extern void EndExclusiveAccess(void);
#ifdef DEBUG
extern BOOL AccessIsExclusive(void);
#endif /* DEBUG */
extern HMODULE GetThisModulesHandle(void);
/* functions to be provided by client */
extern BOOL InitializeDLL(void);
extern BOOL TerminateDLL(void);
#ifdef DEBUG
extern BOOL SetAllIniSwitches(void);
#endif
/* Global Variables
*******************/
/* serialization control structure */
extern CSERIALCONTROL g_cserctrl;