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.
|
|
/*++
Copyright (c) 1991-1993 Microsoft Corporation
Module Name:
svcslib.h
Abstract:
Contains information for connecting services to the controller process.
Author:
Dan Lafferty (danl) 26-Oct-1993
Environment:
User Mode -Win32
Revision History:
26-Oct-1993 danl created 04-Dec-1996 anirudhs Added CWorkItemContext
--*/
#ifdef __cplusplus
extern "C" { #endif
//
// Function Prototypes
//
DWORD SvcStartLocalDispatcher( VOID );
BOOL SetupInProgress( HKEY SystemKey, LPDWORD pdwOOBEMode OPTIONAL );
#ifdef __cplusplus
//===================
// CWorkItemContext
//===================
// Higher-level wrapper for Rtl thread pool functions
//
// An instance of this class is a callback context for the Rtl thread pool functions
//
class CWorkItemContext { public:
NTSTATUS AddWorkItem( IN DWORD dwFlags ) { return RtlQueueWorkItem(CallBack, this, // pContext
dwFlags); }
NTSTATUS AddDelayedWorkItem( IN DWORD dwTimeout, IN DWORD dwFlags );
VOID RemoveDelayedWorkItem( VOID ) { ASSERT(m_hWorkItem != NULL); RtlDeregisterWait(m_hWorkItem); m_hWorkItem = NULL; }
static BOOL Init(); static void UnInit();
protected:
virtual VOID Perform( IN BOOLEAN fWaitStatus ) = 0;
HANDLE m_hWorkItem;
private: static VOID CallBack( IN PVOID pContext );
static VOID DelayCallBack( IN PVOID pContext, IN BOOLEAN fWaitStatus );
static HANDLE s_hNeverSignaled; };
#define DECLARE_CWorkItemContext \
protected: \ VOID Perform( \ IN BOOLEAN fWaitStatus \ );
} // extern "C"
#endif // __cplusplus
|