#ifndef _LogonWait_ #define _LogonWait_ #include "ExternalProcess.h" #include "KernelResources.h" class ILogonExternalProcess : public IExternalProcess { public: virtual NTSTATUS LogonRestart (void) = 0; }; class CLogonWait { public: CLogonWait (void); virtual ~CLogonWait (void); NTSTATUS Cancel (void); NTSTATUS Register (HANDLE hObject, ILogonExternalProcess *pLogonExternalProcess); private: void ObjectSignaled (void); static void CALLBACK CB_ObjectSignaled (void *pV, BOOLEAN fTimedOut); private: HANDLE _hWait; CEvent _event; ILogonExternalProcess *_pLogonExternalProcess; }; #endif /* _LogonWait_ */