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.
 
 
 
 
 
 

120 lines
3.6 KiB

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
wsmain.h
Abstract:
Private header file which defines the global data which is used for
communication between the service control handler and the
rest of the NT Workstation service.
Author:
Rita Wong (ritaw) 06-May-1991
Revision History:
terryk 10-18-1993 Remove WsErrorInitializeLogon
--*/
#ifndef _WSMAIN_INCLUDED_
#define _WSMAIN_INCLUDED_
#include <wsnames.h> // Service interface names
#include <svcs.h> // SVCHOST_GLOBAL_DATA
//
// Time for the sender of a start or stop request to the Workstation
// service to wait (in milliseconds) before checking on the
// Workstation service again to see if it is done.
//
#define WS_WAIT_HINT_TIME 90000 // 90 seconds
//
// Defines to indicate how far we managed to initialize the Workstation
// service before an error is encountered and the extent of clean up needed
//
#define WS_TERMINATE_EVENT_CREATED 0x00000001
#define WS_DEVICES_INITIALIZED 0x00000002
#define WS_MESSAGE_SEND_INITIALIZED 0x00000004
#define WS_RPC_SERVER_STARTED 0x00000008
#define WS_LOGON_INITIALIZED 0x00000010
#define WS_LSA_INITIALIZED 0x00000020
#define WS_DFS_THREAD_STARTED 0x00000040
#define WS_CONFIG_RESOURCE_INITIALIZED 0x00000080
#define WS_SECURITY_OBJECTS_CREATED 0x10000000
#define WS_USE_TABLE_CREATED 0x20000000
#define WS_API_STRUCTURES_CREATED (WS_SECURITY_OBJECTS_CREATED | \
WS_USE_TABLE_CREATED )
//
// This macro is called after the redirection of print or comm device
// has been paused or continued. If either the print or comm device is
// paused the service is considered paused.
//
#define WS_RESET_PAUSE_STATE(WsStatus) { \
WsStatus &= ~(SERVICE_PAUSE_STATE); \
WsStatus |= (WsStatus & SERVICE_REDIR_PAUSED) ? SERVICE_PAUSED : \
SERVICE_ACTIVE; \
}
//-------------------------------------------------------------------//
// //
// Type definitions //
// //
//-------------------------------------------------------------------//
typedef enum _WS_ERROR_CONDITION {
WsErrorRegisterControlHandler = 0,
WsErrorCreateTerminateEvent,
WsErrorNotifyServiceController,
WsErrorInitLsa,
WsErrorStartRedirector,
WsErrorBindTransport,
WsErrorAddDomains,
WsErrorStartRpcServer,
WsErrorInitMessageSend,
WsErrorCreateApiStructures
} WS_ERROR_CONDITION, *PWS_ERROR_CONDITION;
typedef struct _WS_GLOBAL_DATA {
//
// Workstation service status
//
SERVICE_STATUS Status;
//
// Service status handle
//
SERVICE_STATUS_HANDLE StatusHandle;
//
// When the control handler is asked to stop the Workstation service,
// it signals this event to notify all threads of the Workstation
// service to terminate.
//
HANDLE TerminateNowEvent;
} WS_GLOBAL_DATA, *PWS_GLOBAL_DATA;
extern WS_GLOBAL_DATA WsGlobalData;
extern HANDLE WsDllRefHandle;
extern PSVCHOST_GLOBAL_DATA WsLmsvcsGlobalData;
extern BOOL WsLUIDDeviceMapsEnabled;
#endif // ifndef _WSMAIN_INCLUDED_